我有一个Android应用程序,当用户点击时TextView
,我想应用定义的样式。
我以为找到一个,textview.setStyle()
但它不存在。我试过了
textview.setTextAppearance();
但它不起作用。
我有一个Android应用程序,当用户点击时TextView
,我想应用定义的样式。
我以为找到一个,textview.setStyle()
但它不存在。我试过了
textview.setTextAppearance();
但它不起作用。
Answers:
我通过创建一个新的XML文件res/values/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>
我的“ strings.xml”文件中也有一个条目,如下所示:
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>
然后,在我的代码中,我创建了一个ClickListener来捕获该TextView上的tap事件: 编辑: 自API 23起,不赞成使用setTextAppearance
myTextView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
//highlight the TextView
//myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
} else {
myTextView.setTextAppearance(R.style.boldText);
}
myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
}
});
要改回它,您可以使用以下命令:
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
就像乔纳森(Jonathan)所建议的那样,在使用textView.setTextTypeface
作品时,我只是在几秒钟前在一个应用程序中使用过它。
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
以编程方式:运行时
您可以使用setTypeface()以编程方式进行操作:
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
XML:设计时间
您还可以设置XML:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
希望这会有所帮助
总结
尝试这一行代码。
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
在这里,它将从此文本视图中获取当前的字体,并使用新的字体替换它。这是新字体,DEFAULT_BOLD
但您可以应用更多。
有关TextView中的setText()的信息,请参见doco。http: //developer.android.com/reference/android/widget/TextView.html
要设置字符串的样式,请将android.text.style。*对象附加到SpannableString,或参阅“可用资源类型”文档以获取在XML资源文件中设置格式化文本的示例。