Android动态设置TextView的文本格式

来源:互联网 发布:银魂madao知乎 编辑:程序博客网 时间:2024/05/17 20:34

一 动态设置字体颜色

1. 在value文件夹下创建colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <color name="white">#FFFFFF</color>

</resources>

2.在需要动态设置字体颜色的地方设置颜色

tv.setTextColor(this.getResources().getColor(R.color.white));

重点:使用getResources()获取所需的资源,并不拘泥于字体颜色,任何可以动态设置资源的地方都可以用。


二为TextView添加超链接

                textview1= (TextView) v.findViewById(R.id.textview1);

String text = "Visit <a href=\"http://baidu.com/\">Baidu home page</a>";
textview1.setText(Html.fromHtml(text));

       //设置该句使文本的超连接起作用 

textview1.setMovementMethod(LinkMovementMethod.getInstance());//这个不太懂,照着做的。有知道的朋友可以留言给我哈。

重点:通过Html.fromHtml()方法设置文本内容,该方法将HTML转化为一个Spanned对象。

三使用SpannableString类

                 textview1= (TextView) v.findViewById(R.id.textview1);

   Spannable sTextSpannable=new SpannableString(textview1.getText());
sTextSpannable.setSpan(new BackgroundColorSpan(Color.RED), 2, 3, 0);
sTextSpannable.setSpan(new BackgroundColorSpan(Color.BLUE), 4, 8, 0);
textview1.setText(sTextSpannable);

四 使用Typeface设置文本字体

创建一个LedTextView继承TextView,并在构造方法里使用下面的方法。

private void init(Context context) {
AssetManager assets = context.getAssets();
final Typeface font = Typeface.createFromAsset(assets, FONT_DIGITAL_7);
setTypeface(font);
}

注意:FONT_DIGITAL_7是一个字体文件的路径,想用什么字体把它放到对应的路径里,Android把这些不需要生成ID的文件统一放到assets里面

private static final String FONTS_FOLDER = "fonts";
private static final String FONT_DIGITAL_7 = FONTS_FOLDER + File.separator
+ "digital-7.ttf";

第四个在这边写的不是很清楚,想要弄明白的话可以去http://github.com/Macarse/50AH-code下载,Hack11就是这个例子

0 0