TextView整理

来源:互联网 发布:合肥组装电脑淘宝 编辑:程序博客网 时间:2024/06/08 06:21

TextView中比较重要的属性

  • android:textIsSelectable="true"
    • 设置该属性后,长按TextView会弹出选择复制的菜单,用户可以针对文字内容进行选择复制的操作
    • 此状态下TextView是抢夺焦点的(android:focusable="true"),当其他控件需要焦点时,需要处理焦点抢夺问题
  • android:autoLink="email"
    • 该属性有多个值可以进行设置:none(default),web,email,phone,map,all
    • TextView设置该属性后,点击TextView将会弹出相关平台的菜单,例如:当TextView的autoLink设置为email时,TextView中的文字如果包含邮箱格式的文本,那么该部分文本颜色会发生改变(不同系统版本下的链接颜色不同),点击后会弹出与发送邮件相关的菜单,其他的值以此类推
    • 当需要设置多个类型时,使用|分隔开。
  • android:drawableTop="@mipmap/ic_launcher",android:drawableTop="@mipmap/ic_launcher",android:drawableTop="@mipmap/ic_launcher",android:drawableTop="@mipmap/ic_launcher"

    • 该属性的作用是围绕TextView的上下左右分别放置图片
    • 注意:
      • 不能针对设置的图片进行大小设置;
      • 图片只会在其所在方位居中显示;
      • TextView的padding作用在图片之外;
      • TextView的高度或宽度为wrap_content时,其高度将是文字和图片中较大的那一个;
      • gravity只对文字起作用,对图片不起作用;
      • 必要的时候可以使用ImageView和TextView组合来实现类似的效果,但是性能肯定不如以前
  • android:drawableStart="@mipmap/ic_launcher"android:drawableEnd="@mipmap/ic_launcher"

    • 该属性是在API14出现的,但是真正生效是在API17中
    • 其作用在默认情况下和android:drawableLeftandroid:drawableRight相同
    • android:drawableLeftandroid:drawableStart的区别:
      • 说到它们的区别,就不得不说一个概念:RTL语言(Right To Left)和LTR语言(Left To Right),他们表示的是文字的起始输入方向,世界上有一些国家的书写习惯是从右到左的,比如阿拉伯语,从Android4.1开始支持双向文本的输入和显示
      • 设置支持RTL:在manifest中的Application元素加入android:supportsRtl="true"这个属性.也可以通过android:textDirection属性设置文字的方向
      • android:drawableStart该属性会根据输入方向自动调整图片的放置方向,android:drawableLeft则没有这样的效果
  • android:fontFamily="cursive"

    • 其作用是引用系统的内建字体,对应的方法setTypeface(Typeface)
  • android:typeface="monospace"

    • 其作用表面上看起来和android:fontFamily相同,都可以引用内建字体,但是引用的字体是不同的,对应的方法setTypeface(Typeface)
    • 同时定义两者时,会以android:fontFamily为准
    • 自定义字体(不建议使用过多的自定义字体,因为字体存储在assets目录下,该目录中的所有内容在打包时是不做任何处理的,也就是说,使用过多字体时,会导致apk包过大)

      // 自定义字体custom = new TextView(this);//xx.ttf 存储在 assets/fonts/typeface = Typeface.createFromAsset(getAssets(),"fonts/xx.ttf");custom.setTypeface(typeface);
  • android:lineSpacingExtra="10dp"

    • 设置文字行间距
  • android:shadowColor="@color/colorPrimary"android:shadowDx="1.2"android:shadowDy="1.2"android:shadowRadius="5"

    • 这几条属性通常一起使用,用于设置文字的阴影,使用极少
  • android:textAllCaps="true"

    • 设置所有字母为大写
  • android:textStyle="italic"

    • 设置字体样式(默认是正常样式,粗体,斜体)
  • android:textAppearance="?android:attr/textAppearanceLarge"

    • 设置字体外观,这个属性比android:textStyle的功能更强,可以在styles中定义字体的样式,使用该属性来进行引用
  • android:ellipsize="end"

    • 设置行字的省略方式,有四个值可以选择startmiddleendmarquee;前三个分别代表省略号显示的位置,设置marquee配合其他属性可以实现文字滚动的效果
    • 文字滚动效果的实现(又称为跑马灯效果)

      <TextView    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:ellipsize="marquee"    android:focusable="true"    android:focusableInTouchMode="true"    android:singleLine="true"    android:text="@string/ellipsize"/>
    • 注意事项:当实现跑马灯效果时,需要注意焦点抢夺问题,当焦点被抢夺时,文字不会滚动,例如:android:textIsSelectable="true"该属性就会抢夺焦点
0 0
原创粉丝点击