Android TextView高级特性使用 – 泡泡糖

  TextView一般都是用来显示一段文本,这里说的高级特性主要是一些我们平常不太常用的属性。包括文字阴影、自定义字体、html嵌入多格式、字体加粗、插入图片。这些特性平时开发APP的时候,可能一般使用不多,不过需要的时候却是很有用的特性。

  之所以写这篇文章是因为今天修改Launcher里面界面字体的时候,遇到些问题,而Launcher的图标都是TextView做的,因此查找了一些TextView的特殊属性。

 (PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)

  

1、文字阴影

//Edited by mythou
//http://www.cnblogs.com/mythou/
android:shadowColor=#000000
android:shadowDx
=15.0
android:shadowDy
=5.0
android:shadowRadius
=2.5

  shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。这里需要说明一点是,如果需要阴影和原字体重叠,需要设置shadowDx和shadowDy为-1,并且把shadowRadius设置大一点。我们可以直接把上面属性嵌入到TextView标签,也可以使用<style>来定义。

//Edited by mythou
//http://www.cnblogs.com/mythou/
<?xml version=1.0 encoding=utf-8?>
<resources>
<style name=LauncherWorkspaceText>
<item name=android:paddingLeft>4px</item>
<item name=android:paddingBottom>4px</item>
<item name=android:textColor>#FFFFFF</item>
<item name=android:textSize>60sp</item>
<item name=android:shadowColor>#000000</item>
<item name=android:shadowDx>-1</item>
<item name=android:shadowDy>-1</item>
<item name=android:shadowRadius>4</item>
</style>
</resources>

上面是我定义的一个用于Launcher界面按钮文字大小的Style标签,在使用的时候,可以直接引用这个Style即可。

//Edited by mythou
//http://www.cnblogs.com/mythou/
<TextView
style
=@style/LauncherWorkspace
android:id
=@+id/player
android:layout_width
=160dp
android:layout_height
=160dp
android:background
=@drawable/player
/>

 

2、自定义字体

  TextView可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,Typeface使用TTF字体文件来设置字体。因此我们只要找到合适的TFT字体文件,然后放到程序里面即可。TFT字体在我们window系统里面就有很多,例如微软雅黑。

在程序中使用Typeface来设置字体:

第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。

第二步,程序中使用下面代码设置自定义字体:

//Edited by mythou
//http://www.cnblogs.com/mythou/
TextView tv = (TextView)findViewById(R.id.textView);
//得到AssetManager
AssetManagermgr=getAssets();
//根据路径得到Typeface
Typefacetf=Typeface.createFromAsset(mgr, fonts/yahei.TTF);
//设置字体
tv.setTypeface(tf);

 

3、TextView使用Html格式文本

TextView里面支持识别Html格式,因此,我们可以利用Html代码标签定义多元化的TextView显示。

//Edited by mythou//http://www.cnblogs.com/mythou/String textStr1 = <font color=”#ffff00″>Html颜色标签测试</font><br>;
tv.setText(Html.fromHtml(textStr1));

 

4、字体加粗

在xml布局文件中设置字体加粗:

android:textStyle=”bold”

  这个属性可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:使用TextPaint的仿“粗体”设置setFakeBoldText为true。

tv.getPaint().setFakeBoldText(true);

 

5、插入图片

  插入图片有两种方法,第一种方法使用Html嵌入,不过需要一些转换工作。使用ImageGetter类来对图片的src属性进行转换。

//Edited by mythou
//http://www.cnblogs.com/mythou/
String imgStr = <img src=”+R.drawable.player+“/>;
Html.ImageGetter imageGetter
= new Html.ImageGetter()
{
public Drawable getDrawable(String arg0)
{
// TODO Auto-generated methodstub
int id =Integer.parseInt(arg0);
Drawable draw
=getResources().getDrawable(id);
draw.setBounds(
5, 5, 160,160);
return
draw;
}
};

//设置图片
tv.append(Html.fromHtml(imgStr,imageGetter,null));

第二种方法是使用xml布局文件的android:drawableXXX属性来实现插入图片。

drawableBottom是在文本框内文本的底端绘制指定图像

drawableLeft是在文本框内文本的左边绘制指定图像

drawableRight是在文本框内文本的右边绘制指定图像

drawableTop是在文本框内文本的顶端绘制指定图像

drawablePadding设置文本框内文本与图像之间的间距

 

Edited by mythou

原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3228795.html 

 

本文链接:http://www.cnblogs.com/mythou/p/3228795.html,转载请注明。



You must enable javascript to see captcha here!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress

无觅相关文章插件,快速提升流量