前言
TextView是android里一个非常具有代表性的一个控件,像直接或者间接以它为父类实现的,而且TextView是非常常用的一个控件,具体原理推荐看一下老罗的这一篇(http://blog.csdn.net/luoshengyang/article/details/8636153),语言描述比我清晰。
下面就总结一下它的用法:
基本属性
基本属性建议看一下这篇文章的属性表介绍,还是比较清晰的(http://www.yiibai.com/android/android_textview_control.html),如果查看全属性可以推荐看一下这篇,属性很全,但是太繁杂,(http://daoshud1.iteye.com/blog/1848309)
HTML格式文本
String htmlStr =”<font color="#FF0000" size="2"><b>H</b>e<i>l</i>l<u>o</u></font>
”textView.setText(Html.fromHtml(htmlStr));
给String赋值
在TextView中想要动态的显示某些值,用到%1$s
,%1$d
,先介绍一下:
%n$ms
:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md
:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$mf
:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
例如:
<string name="text_num">共有%s辆</string>
textView.setText(getResources().getString(R.string.text_num,"130"));
显示:"共有130辆"
<string name="text_num">共有%1$3s辆</string>
textView.setText(getResources().getString(R.string.text_num,"13"));
显示:"共有 13辆"前面有一个空格
4.Spannable使用
可以看下这篇文章,比较细致,就偷点懒不码字了
http://blog.csdn.net/yqyiqun/article/details/7729076
5.阴影效果
也就是这么几个属性
android:shadowColor="@android:color/holo_blue_light"
android:shadowRadius="1"
android:shadowDx="10"
android:shadowDy="10"
6.自定义字体
这个是主要的一个东西,TextView可以使用setTypeface(Typeface)方法来设置文本框内文本的字体。Typeface使用TTF字体文件来设置字体。因此我们只要找到合适的TFT字体文件,然后放到程序里面即可,大家可以去阿里的ICONFONT下载字库玩玩,另外ICONFONT还把一些图标可以做到字库,可以试试
第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。
第二步,程序中使用下面代码设置自定义字体:
AssetManagermgr=getAssets();
//根据路径得到Typeface
Typefacetf=Typeface.createFromAsset(mgr, "fonts/XXX.TTF");
//设置字体
tv.setTypeface(tf);
7.可以结合Style.xml使用
<style name="mytextStyle">
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingBottom">4dp</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:textSize">13sp</item>
<item name="android:shadowColor">#000000</item>
<item name="android:shadowDx">10</item>
<item name="android:shadowDy">10</item>
<item name="android:shadowRadius">4</item>
<item name="android:gravity">center</item>
<item name="android:background">#FFFFFF</item>
</style>
<TextView
style="@style/mytextStyle"
android:id="@+id/mytext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>