TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

1.    自定义字体
可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体
所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。第二步,程序中调用:
TextViewtv = (TextView)findViewById(R.id.textView);
AssetManagermgr=getAssets();//得到AssetManager
Typefacetf=Typeface.createFromAsset(mgr, "fonts/mini.TTF");//根据路径得到Typeface
tv.setTypeface(tf);//设置字体
效果如下图所示:
 
TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)_第1张图片
 
2.    显示多种颜色的字
Android支持html格式的字符串,通过调用Html.fromHtml(str)方法可以转换html格式的字符串str。
示例如下:
StringtextStr1 = "<font color=\"#ffff00\">如果有一天,</font><br>";
StringtextStr2 = "<font color=\"#00ff00\">我厌倦了这里,</font><br>";
StringtextStr3 = "<font color=\"#ff00ff\">我会乘着梦,</font><br>";
StringtextStr4 = "<font color=\"#00ffff\">飞向那个属于自己的<br>世界……</font><br>";
tv.setText(Html.fromHtml(textStr1+textStr2+textStr3+textStr4));
运行后效果如下:
 
TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)_第2张图片
 
3.    字体加粗
在xml布局文件中使用android:textStyle=”bold”可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:使用TextPaint的仿“粗体”设置setFakeBoldText为true。示例代码如下:
tv.getPaint().setFakeBoldText(true);
效果如下:

TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)_第3张图片
 
4.    添加阴影
在xml布局文件中使用一系列android:shadowXXX属性可添加设置阴影。具体为:shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。
示例代码:
android:shadowColor="#ffffff"
android:shadowDx="15.0"
android:shadowDy="5.0"
android:shadowRadius="2.5"
显示效果如下:
 
TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)_第4张图片
 
5.    插入图片
插入图片有两种方法,第一种方法就是用上面说的html格式的字符串,不过转换稍微有些麻烦。需要用到ImageGetter类来对图片的src属性进行转换。示例代码如下:
StringimgStr = "<img src=\""+R.drawable.sidai+"\"/>";
Html.ImageGetterimageGetter = new Html.ImageGetter() {
         public Drawable getDrawable(Stringarg0) {
                   // TODO Auto-generated methodstub
                   int id =Integer.parseInt(arg0);
                   Drawable draw =getResources().getDrawable(id);
                   draw.setBounds(10, 10, 228,300);
                   return draw;
         }
};
tv.append(Html.fromHtml(imgStr,imageGetter,null));
第二种方法是使用xml布局文件中一系列android:drawableXXX属性来实现插入图片。具体为:drawableBottom是在文本框内文本的底端绘制指定图像;drawableLeft是在文本框内文本的左边绘制指定图像;drawableRight是在文本框内文本的右边绘制指定图像;drawableTop是在文本框内文本的顶端绘制指定图像;drawablePadding设置文本框内文本与图像之间的间距。示例代码:
android:drawableBottom=”@drawable/sidai”
插入图片后的显示效果如下:
TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)_第5张图片




摘自 北京大学-Google Android实验室

你可能感兴趣的:(TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影))