TextView使用大全

简介:

最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,写一个系列的话,大家学习起来也有头有尾。

今天就从我们每天都会用到的TextView讲起.

1.设置背景颜色

1
2
3
4
5
6
<TextView 
     android:layout_width= "match_parent" 
     android:layout_height= "wrap_content" 
     android:background= "#FF00FF" 
     android:layout_marginTop= "10dp" 
     android:text= "设置背景颜色"  />

2.如何在程序里面动态赋值 这里可以直接是字符串,也可以是字符串资源id

1
2
TextView tv0=(TextView) findViewById(R.id.tv0); 
  tv0.setText( "如何在程序里面动态赋值" );

3.实现多字符串的动态处理
1).在strings.xml文件中写上字符串

 <string name="testing">这是一个数:%1$d, 这是两位数:%2$d,这是三位数:%3$s</string> 

2).在java代码中设置值

1
tv1.setText(getString(R.string.testing,  new  Integer[]{ 11 , 21 , 31 }));

 

4.TextVie显示html 字体颜色为红色 需要注意不支持html标签的style属性

1
2
String html= "<font color ='red'>TextVie显示html 字体颜色为红色</font><br/>"
tv3.setText(Html.fromHtml(html));

  

5.给TextView设置点击事件,这个事件是父类View的,所以所有的android控件都有这个事件,我这边为了方便就采用了内部类的方式

1
2
3
4
5
6
tv4.setOnClickListener( new  OnClickListener() { 
     @Override 
     public  void  onClick(View v) { 
         Toast.makeText(MainActivity. this "点击了TextView4" , Toast.LENGTH_LONG).show(); 
    
});

  

6.给TextView文字加粗,并且设置阴影效果
字体阴影需要四个相关参数:
1). android:shadowColor:阴影的颜色
2). android:shadowDx:水平方向上的偏移量
3). android:shadowDy:垂直方向上的偏移量
4). android:shadowRadius:是阴影的的半径大少

1
2
3
4
5
6
7
8
9
10
11
12
<TextView 
     android:id= "@+id/tv5" 
     android:layout_width= "wrap_content" 
     android:layout_height= "wrap_content" 
     android:layout_marginTop= "10dp" 
     android:textStyle= "bold" 
 
     android:shadowColor= "#ff000000" 
     android:shadowDx= "10" 
     android:shadowDy= "10" 
     android:shadowRadius= "1" 
     android:text= "文字阴影,文字加粗"  />

  

7.文字加图片显示
drawableBottom是在文本框内文本的底端绘制指定图像
drawableLeft是在文本框内文本的左边绘制指定图像
drawableRight是在文本框内文本的右边绘制指定图像
drawableTop是在文本框内文本的顶端绘制指定图像
drawablePadding设置文本框内文本与图像之间的间距

1
2
3
4
5
6
7
8
9
<TextView 
     android:id= "@+id/tv6" 
     android:layout_width= "wrap_content" 
     android:layout_height= "wrap_content" 
     android:layout_marginTop= "10dp" 
     android:drawableLeft= "@drawable/ic_launcher" 
     android:drawablePadding= "10dp" 
     android:gravity= "center_vertical" 
     android:text= "文字+图片"  />

  

8.TextView的样式类Span的使用详解

1
2
3
4
5
6
//      1. TextView的样式类Span的使用详解 
         SpannableString spannableString =  new  SpannableString( "TextView的样式类Span的使用详解" ) ; 
         BackgroundColorSpan backgroundColorSpan =  new  BackgroundColorSpan(Color.RED); 
         //0到10的字符设置红色背景 
         spannableString.setSpan(backgroundColorSpan,  0 10 , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) ; 
         tv7.setText(spannableString);

  

9.TextView设置点击事件Spannable
注意:在使用ClickableSpan的时候,在单击链接时凡是有要执行的动作,都必须设置MovementMethod对象。

1
2
3
4
5
6
7
8
9
10
SpannableString spannableClickString =  new  SpannableString( "TextView设置点击事件Span" ) ; 
ClickableSpan clickableSpan =  new  ClickableSpan() { 
     @Override 
     public  void  onClick(View widget) { 
             Toast.makeText(MainActivity. this , "TextView设置点击事件Span" , Toast.LENGTH_LONG).show(); 
    
}; 
spannableClickString.setSpan(clickableSpan, 11 , 15 , Spannable.SPAN_EXCLUSIVE_INCLUSIVE) ; 
tv8.setMovementMethod(LinkMovementMethod.getInstance()); 
tv8.setText(spannableClickString);

  

10.TextView设置点击背景
1).新建一个selector_textview.xml文件,放到drawable目录下

1
2
3
4
5
6
<?xml version= "1.0"  encoding= "utf-8" ?> 
<selector xmlns:android= "http://schemas.android.com/apk/res/android"
     <item android:drawable= "@color/textview_click_background"   android:state_focused= "true" /> 
     <item android:drawable= "@color/textview_click_background"  android:state_pressed= "true" /> 
     <item android:drawable= "@color/textview_default" /> 
</selector>

  

2).在TextView的xml布局中设置背景

1
android:background= "@drawable/selector_textview"

  

3).设置点击事件

1
2
3
4
5
6
7
//必须要给TextView加上点击事件点击之后才能改变背景颜色 
       findViewById(R.id.tv9).setOnClickListener( new  OnClickListener() { 
     @Override 
     public  void  onClick(View v) { 
         Toast.makeText(MainActivity. this , "点击了TextView9" , Toast.LENGTH_LONG).show(); 
    
});

  

11.TextView设置上下左右边框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version= "1.0"  encoding= "utf-8" ?> 
<layer-list xmlns:android= "http://schemas.android.com/apk/res/android"  >   
     <!-- This is the main color -->   
     <item>   
         <shape>   
                 <!--    边框颜色 -->   
             <solid android:color= "#00FF00" />   
         </shape>   
     </item>   
     <!-- 给View的上 左  右设置8dp的边框 -->   
     <item android:top= "8dp"  android:left= "8dp"  android:right= "8dp"  >   
         <shape>   
                 <!--     View填充颜色 -->   
             <solid android:color= "#FFFFFF"  />   
         </shape>   
     </item>   
</layer-list>

  

12.TextView设置圆角跟边框

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version= "1.0"  encoding= "utf-8" ?> 
<shape xmlns:android= "http://schemas.android.com/apk/res/android" 
<!--     默认背景色 --> 
     <solid android:color= "#FF00FF" /> 
         <!-- 边框 -->   
     <stroke   
         android:width= "1dp"   
         android:color= "@android:color/black"  />   
<!--     设置弧度 --> 
     <corners 
         android:radius= "20dp" /> 
</shape>

  

最后效果图如下:

源码下载

还有个人建议如果TextView能显示的就不要用Botton,TextView使用更灵活方便。

延伸阅读:

Android TextView加上阴影效果
Android TextView高级特性使用
TextView属性大全
Android之TextView的样式类Span的使用详解

以上就是我整理的TextView常用的知识,暂时想到的也就这么多,以后想到再来补充。。。大家有什么问题也可以留言。。。

目录
相关文章
|
1月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
33 0
|
6月前
|
XML Java 开发工具
TextView
TextView
65 0
|
Java Android开发 iOS开发
Android TextView 与 EditText 的区别与使用
Android TextView 与 EditText 的区别与使用
160 0
|
Android开发
|
XML Java 开发工具
TextView(下)
TextView(下)
108 0
|
Android开发
Android控件之TextView
在android中,文本控件主要包括TextView控件和EditView控件
108 0
Android控件之TextView
|
Android开发
Android TextView跑马灯效果
Android TextView跑马灯效果
219 0
|
XML Android开发 数据安全/隐私保护
Android EditText详解
Android点击EditText文本框之外任何地方隐藏键盘的解决办办法;设置手机号中间带空格;Android如何将软键盘回车换成搜索等按钮;EditText中imeOptions属性的使用;软键盘的关闭软键盘的显示和隐藏的监听;设置EditText的hint字体大小;设置默认输入法 ;其他xml属性大全;android:inputType
224 0
|
Android开发
1-VIV-Android控件之TextView
零、前言 [1].今天总结一下TextView [2].TextView在View家族的地位是:源码行数11000+,可以说是个大类 [3].TextView直接继承自View,EditText,Button,CheckBox都是它的后代 [4].
1289 0