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

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

1.设置背景颜色

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

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

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代码中设置值

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

 

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

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

  

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

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:是阴影的的半径大少

<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设置文本框内文本与图像之间的间距

<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. 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对象。

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目录下

<?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布局中设置背景

android:background="@drawable/selector_textview"

  

3).设置点击事件

 //必须要给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设置上下左右边框

<?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设置圆角跟边框

<?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常用的知识,暂时想到的也就这么多,以后想到再来补充。。。大家有什么问题也可以留言。。。


                       推荐下自己创建的android QQ群: 202928390欢迎大家的加入.

                     如果你想第一时间看我们的后期文章,扫码关注公众号,每个周末都会推送Android开发实战教程一篇,其余时间我们会推出一些互联网行业新闻,你还等什么,赶快关注吧,既能学到技术,还能长逼格,出任ceo,赢取白富美。。。。。 

TextView使用大全的更多相关文章

  1. (转)TextView属性大全

    TextView属性大全 今天研究了TextView一天了,发现网上有一篇讲TextView属性的,非常全,收藏一下先. 发现TextView有一个比较大的问题,就是文字排版的问题,遇到数字,字母,符 ...

  2. Android(java)学习笔记88:TextView属性大全

    TextView属性大全: android:autoLink       设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/ph ...

  3. Android(java)学习笔记27:TextView属性大全

    TextView属性大全: android:autoLink       设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/ph ...

  4. TextView属性大全

    今天研究了TextView一天了,发现网上有一篇讲TextView属性的,非常全,收藏一下先. 发现TextView有一个比较大的问题,就是文字排版的问题,遇到数字,字母,符号等就会有问题,目前还没有 ...

  5. 转--Android:TextView属性大全

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

  6. Android TextView属性大全

    android:ems 设置TextView的宽度为N个字符的宽度. android:maxems 设置TextView的宽度为最长为N个字符的宽度.与ems同时使用时覆盖ems选项.android: ...

  7. TextView-属性大全(设置超链接颜色)

    今天想要修改一个textview下的超链接的颜色值,自己当时在网上搜了一下,结果看到的全是怎么给一个textview中的部分内容设置颜色.下划线等.当时就以为在textview属性里面可能不存在设定超 ...

  8. Android笔记---常用控件以及用法

    这篇文章主要记录下Android的常用控件以及使用的方法,Android 给我们提供了大量的UI控件,合理地使用这些控件就可以非常轻松地编写出相当不错的界面,这些是Android学习的基础,没有什么业 ...

  9. Android 基础UI组件(一)

    1.Toast //显示文字 Toast.makeText(this,"Toast显示文本",Toast.LENGTH_SHORT).show(); //显示图片 Toast to ...

随机推荐

  1. TODO:macOS编译PHP7.1

    TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...

  2. Node-Webkit打包

    1.node-webkit是什么? NW.js is an app runtime based on Chromium and node.js. You can write native apps i ...

  3. Opserver开源的服务器监控系统(ASP.NET)

    Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...

  4. 讓TQ2440也用上設備樹(1)

    作者:彭東林 郵箱:pengdonglin137@163.com QQ:405728433 開發板 TQ2440 + 64MB 內存 + 256MB Nand 軟件 Linux: Linux-4.9 ...

  5. AI人工智能系列随笔:syntaxnet 初探(1)

    人工智能是 最近的一个比较火的名词,相信大家对于阿尔法狗都不陌生吧?其实我对人工智能以前也是非常抵触的,因为我认为机器人会取代人类,成为地球乃至宇宙的霸主,但是人工智能带给我的这种冲击,我个人感觉是欲 ...

  6. 漫谈C#编程语言在游戏领域的应用

    0x00 前言 随着微软越来越开放,C#也变得越来越吸引人们的眼球.而在游戏行业中,C#也开始慢慢地获得了关注.这不, 网易绝代双娇手游团队已经全面使用.Net Core支持前后端统一C#开发,跨平台 ...

  7. Springboot搭建web项目

    最近因为项目需要接触了springboot,然后被其快速零配置的特点惊呆了.关于springboot相关的介绍我就不赘述了,大家自行百度google. 一.pom配置 首先,建立一个maven项目,修 ...

  8. QQ空间动态爬虫

    作者:虚静 链接:https://zhuanlan.zhihu.com/p/24656161 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 先说明几件事: 题目的意 ...

  9. Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)

    示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...

  10. Xamarin.Android广播接收器与绑定服务

    一.前言 学习了前面的活动与服务后,你会发现服务对于活动而言似乎就是透明的,相反活动对于服务也是透明的,所以我们还需要一中机制能够将服务和活动之间架起一座桥梁,通过本节的学习,你将会学到广播与绑定服务 ...