这是android中最为常用的textview的一些属性。源自书摘,文摘,包括自己理解、试验,不喜勿喷。
<TextView
android:id="@+id/text"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="这是一个长文本长文本长文本长文本长文本"
android:hint="文本"
android:textColor="#FF00FF"
android:textSize="20sp"
android:textStyle="bold"
android:typeface=""
android:ellipsize="end"
android:singleLine="true"
android:textScaleX="2"
/>
这上面提到的属性有:
text: 用于设置文本显示。
hint: 用于设置默认文本显示,(用于提示,当没有text时显示,默认为黑色)。
textColor: 用于设置文本颜色。
textSize:用于设置字体大小,单位是sp。
textStyle:设置字体样式,包括有bold(粗体)、italic(斜体)、normal(正常)。
typeface:设置字体,内有android自带字体四种,monospace、sans、serif、normal。
ellipsize:设置当文本过长时,如何显示,有start(省略号在开始)、end(省略号在结尾)、middle(省略号在中间)、none(自动截取)、marquee(跑马灯式动画显示)。
singleLine:是否单行显示,true表示单行显示,显示不下的自动截取。
textScaleX:行中字间距。
说明:
1、若在代码中需要,设置文本为空,则会显示hint初值。
2、若将textStyle设置为italic,字变斜体,但是若为bold且是中文,不好使:
这里有一种解决的办法:
textview.getPaint().setFakeBoldText(true);
于是,如此:
3、typeface中android内置的字体太少,有可能不符合需求。因此提供一种自定义字体的方法。
第一步:在assets文件夹下新建fonts文件夹,并把想要自定义的字体粘贴进去。
第二步:
AssetManager am = getAssets();//获得assets的内容
textview.setTypeface(Typeface.createFromAsset(am, "fonts/FZMWFONT.TTF"));//管理器,传入路径
于是有:(这是方正喵呜体)
4、TextView还支持手动换行以及多种颜色显示。
String strRed = "<font color=\"#FF0000\">这是一段文字</font><br />";
String strGreen = "<font color=\"#00FF00\">这是一段文字</font><br />";
String strBlue = "<font color=\"#0000FF\">这是一段文字</font><br />";
textview.setText(Html.fromHtml(strRed + strGreen + strBlue));
效果如下:
5、单独设置marquee,跑马灯效果跑不起来,经查有几个属性没有设置:
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"//通过触摸来得到焦点
android:marqueeRepeatLimit="marquee_forever"//循环的次数,这表示永远循环
android:singleLine="true"//单行显示
以上是组合属性,至于为啥我不知道,但是这样文字就能跑起来,