android控件之TextView

       这是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"//单行显示

         以上是组合属性,至于为啥我不知道,但是这样文字就能跑起来,

        

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值