2 myq 26 myq_26 于 2012.10.17 13:51 提问

改变一个TextView在运行时的样式

我想实现在android应用程序上,当用户点击一个TextView时,应用一个已定义的样式。我添加textview setstyle()方法后,样式也不显示。我再用textview.setTextAppearance()。还是没有实现。请问能用什么方法实现呢?

3个回答

zxd_72
zxd_72   2012.10.19 18:02
已采纳

创建一个新的XML文件 "style.xml":

 <?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="boldText">
        <item name="android:textStyle">bold|italic</item>
        <item name="android:textColor">#FFFFFF</item>
    </style>

    <style name="normalText">
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#C0C0C0</item>
    </style>

</resources>
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>

myTextView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view){

                myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
                myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
            }
        });
ueryueryuery
ueryueryuery   2012.10.17 15:21

应该使用setstyle()来实现,setTextAppearance()是改变TextView内文字样式的。

请LZ仔细看看自己引用的style是否和原来的不同,不同才有效果嘛。

xiaoyan_12
xiaoyan_12   2012.10.18 17:42
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);
Csdn user default icon
上传中...
上传图片
插入图片