Android控件TextView学习一



TextView控件:能向用户展现文本信息,可以设置该文本信息是否能够编辑,TextView默认自动换行
一、 两种使用方式:
第一种:在程序中创建TextView对象
TextView t = new TextView(this);//其中this代表的是当前的这个activity对象
t.setTect("hello world");
setContentView(t);
第二种:在XML布局文件中使用(用XML文件来控制所有的ui对象)
可以使用ALT+?打开提示内容
在layout下面的XML文件
  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"  //也可以写入文本信息android:text="哈哈哈"
  />
 二、TextView属性
1.设置字体大小
        android:textSize="25sp"  设置字体的大小,推荐使用sp作为单位
sp:放大像素,Android默认使用sp作为字号单位 ,主要是用来字体显示的
dip=dp:设备独立像素,与设备硬件有关,不同硬件显示不同的效果
px:像素,不同设备显示不同效果
pt:point 长度单位
in:长度单位,英寸
mm:长度单位
设置字体的大小推荐使用sp作为单位
设置宽度或高度等属性时推荐使用dp(dip)作为单位
  android:id="@+id/tv"   之所以加+号是因为tv要写到R.java中,写+号就会自动添加到R.java中,到时候可以直接使用R.***来进行引用
2. 改变TextView的字体颜色
a. 通过XML更改     android:textColor="#FF0000"
b. 通过代码更改
TextView tv = (TextView)findViewById(R.id.tv);
tv.setText(Html.fromHtml("欢迎大家<font color=blue>《小石川花花》</font>"));
setText是为了设置textView控件上面的内容,Html标签来定义文本的颜色信息,可以改变局部颜色,因为findViewById是view类的,需要强制转换成为TextView
c. TextView tv = (TextView)findViewById(R.id.tv);
  SpannableStringBuilder style=new SpannableStringBuilder("setText是为了设置textView控件上面的内容,Html标签来定义文本的颜色信息,可以改变局部颜色");//针对text文本的类,信息是可以改变的
  style.setSpan(new ForegroundColorSpan(Color.RED), 0, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  style.setSpan(new ForegroundColorSpan(Color.GREEN), 6, 21, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  style.setSpan(new ForegroundColorSpan(Color.BLUE), 21, 34, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//0,6代表范围
           tv.setText(style);
 备注:如果范围和实现字符串不符的话,应用会crash

3.设置超链
android:autoLink设置是否当文本为URL/Emial/电话话码等,文本显示为可点击的链接(none/web/email/phone/map/all)

4.自动滚动(跑马灯)
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="车诚俊,韩静书,李光洙,刘在石,大神,金钏国,哈哈,GARY,智孝,我的野蛮王妃,宫,天国的阶梯"
        android:textSize="20sp"
        android:singleLine="true"
        android:focusable="true"
        android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
      android:focusableInTouchMode="true" 
        />
当字数够长的时候想要文字滚动的效果,则需要跑使用android:focusable="true"以及android:focusableInTouchMode="true",如果没有这两个,则实现不了滚动效果,因为跑马灯效果需要TextView获得当前的焦点。
android:ellipsize="marquee"指的是设置文字过长时怎么显示 (start:省略号显示在开头,end:省略号显示在结尾,middle:省略号显示在中间,mqrquee:动画横向移动,跑马灯)
android:singleLine="true"指的是一行显示,因为TextView默认为自动换行
android:marqueeRepeatLimit="marquee_forever":设置滚动的次数 marquee_forever代表无限次
android:focusable="true":控件是否能够获取焦点

android:focusableInTouchMode="true" :是否在触摸模式下获得焦点

但是如果有两个TextView同时想要跑马灯的效果怎么办呢,因为跑马类效果首先要获取焦点,当第一个TextView中获取焦点之后第二个TextView没有办法获取焦点,(因为默认只有一个TextView处于focused状态)可以加上android:clickable="true"设置点击,点击切换焦点 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值