Android TextView 组件

Android组件之TextView TextView 是 Android 中用于显示文本的基础 UI 组件。通过 XML 或 Java 代码,可以轻松定义和自定义 TextView 的样式。在 XML 中,可以设置文本内容、颜色、字体、对齐方式、内外边距等属性。在 Java 中,可以通过代码动态设置这些属性,甚至为文本的部分内容应用不同的样式。此外,还可以使用 SpannableString 或 HTML 标签来实现更复杂的文本样式。TextView 的灵活性和易用性使其成为 Android 开发中最常用的组件之一。 阅读详情

转载自:http://blog.youkuaiyun.com/shulianghan/article/details/17676221,略有改动。

更多TextView属性参见API:http://android.toolib.net/reference/android/widget/TextView.html

一、文本转链接

<span style="font-family:Microsoft YaHei;">android:autoLink,可选属性值:none,web,email,phone,map,all;
对应方法:setAutoLinkMask(int)</span>

如果没有特殊需求,不要自动将电话变成超链接,因为不是所有的Android设备都能打电话,而且各国的电话号码格式都不同,容易将一般数字误差成电话。

也不要自动将地址变成超链接,并非所有设备上都装有地图APP

如果在XML設定autoLink,啟用了AutoLink屬性的話,LinkMovementMethod將會被自動加入TextView中,因此沒有必要使用setMovementMethod再指定LinkMovementMethod。(需要添加此方法的情况见第十条)

二、设置图片

<span style="font-family:Microsoft YaHei;">android:drawableLeft等
对应方法:setCompoundDrawablesWithIntrinsicBounds(drawable,drawable,drawable,drawable)

android:drawablePadding,设置图片与文本间距</span>

三、显示省略

<span style="font-family:Microsoft YaHei;">必须先用android:singleLine设置文本行数为单行
android.ellipsize,可选属性值none,start,middle,end,marquee。</span>

四、文本滚动

上面的ellipsize属性值中,marquee指文本滚动,由于TextView获得焦点时才会滚动,所以设置此属性时还应加上:
<span style="font-family:Microsoft YaHei;">android:focusableInTouchMode="true"
android:focusable="true"

可选属性,滚动的重复次数:
android:marqueeRepeatLimit="marquee_forever"</span>

Demo:
<span style="font-family:Microsoft YaHei;"><TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="天下英雄出我辈,一入江湖岁月催。皇图霸业谈笑间,不胜人生一场醉"
    android:textSize="20dp"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusableInTouchMode="true"
    android:focusable="true"
    /></span>

等效的Java代码:
<span style="font-family:Microsoft YaHei;">mTVText.setText("天下英雄出我辈,一入江湖岁月催。皇图霸业谈笑间,不胜人生一场醉");
mTVText.setSingleLine(true);
mTVText.setEllipsize(TruncateAt.MARQUEE);
TextView.setHorizontallyScrolling(true); //让文字可以水平滑动</span>

五、设置文本颜色、大小、阴影

<span style="font-family:Microsoft YaHei;">android:textColor,颜色
对应方法:setTextSize(float)

android:textSize,大小
对应方法:setTextColor()

android:shadowColor,阴影颜色
android:shadowDx,阴影水平偏移
android:shadowDy,阴影垂直偏移
android:shadowRadius,阴影模糊程度
对应方法:setShadowLayer(float, float, float, int)</span>

六、显示的文本为密码

<span style="font-family:Microsoft YaHei;">android:password="true" 
对应方法:setTransformationMethod(TransformationMethod)</span>

七、可勾选文本

<span style="font-family:Microsoft YaHei;">CheckedTextView,是TextVIew的子类。
setChecked(boolean),设置checked状态
isChecked(),获取checked状态
setCheckMarkDrawable(),设置勾选图标
toggle(),切换状态

android:checkMark,属性值是一个drawable图片
单选可以设置成 "?android:attr/listChoiceIndicatorSingle" 
多选可以设置成 "?android:attr/listChoiceIndicatorMultiple"</span>

八、添加边框和背景

通过android:background自定义背景
eg:
<span style="font-family:Microsoft YaHei;"><?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android" >  
      
    <!-- 设置背景为透明色 -->  
    <solid android:color="#0000" />  
      
    <!-- 设置边框的厚度为4像素, 设置边框颜色 -->  
    <stroke android:width="10px" android:color="#01DF01"/>  

     <!-- 设置背景颜色渐变 从 红色  -> 绿色 -> 蓝色, 渐变的类型为sweep渐变 -->  
     <gradient   
         android:startColor="#f00"  
         android:centerColor="#0f0"  
         android:endColor="#00f"  
         android:type="sweep"/> 

     <!-- 设置该矩形的四个角的角度弧度 -->  
     <corners   
         android:topLeftRadius="20px"  
         android:topRightRadius="5px"  
         android:bottomRightRadius="20px"  
         android:bottomLeftRadius="5px"/>  
  
</shape> </span>

九、三个width属性的优先级

<span style="font-family:Microsoft YaHei;">android:layout_width > android:width > android:minWidth</span>

十、显示HTML效果页面

使用Html.fromHtml("")方法, 参数是html代码, 可以使用html标签设置文本效果
<span style="font-family:Microsoft YaHei;">textView.setText(Html.fromHtml("<font color='red'><big>变大, 红色 </big></font>" +  
        " 正常  " +  
        "<font color='green'><small>  变小, 绿色</small></font> ")); 
</span>

这种方法将使Html的超链接失效,再添加一行代码即可解决:

text.setMovementMethod(LinkMovementMethod.getInstance());



总结 在Android中显示HTML页面的方法 :
-- 浏览器访问 : 
<span style="font-family:Microsoft YaHei;">Uri uri = Uri.parse("http://blog.youkuaiyun.com/shulianghan");  
Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
startActivity(intent);  </span>

-- 使用TextView显示 : 
<span style="font-family:Microsoft YaHei;">TextView tv_1 = (TextView)findViewById(R.id.tv_1);  
tv_1.setText(Html.fromHtml("<font size='20' color='#ff0000'>显示网页信息</font>"));  </span>

-- 使用WebView组件显示 : 
<span style="font-family:Microsoft YaHei;">WebView webview = (WebView) findViewById(R.id.wv);  
webview.getSettings().setJavaScriptEnabled(true);  
webview.loadUrl("http://blog.youkuaiyun.com/shulianghan"); </span>



十一、Spannable设置TextView特效

a. 创建Spannable对象 : 使用new SpannableString("")创建该对象, 传入想要添加效果的字符串;
b. 为指定范围的字符串添加效果 : span.setSpan(new AbsoluteSizeSpan(58), 1, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE), 为下标从 1 ~ 5的字符串添加 字体大小为58像素的效果;
c. 将Spannable对象设置给TextView : textView.setText(span);

实例 : 
<span style="font-family:Microsoft YaHei;">TextView textView = (TextView) findViewById(R.id.tv_1);  
Spannable span = new SpannableString("使用Spannable设置字体效果");    
span.setSpan(new AbsoluteSizeSpan(58), 1, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
span.setSpan(new ForegroundColorSpan(Color.RED), 1, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
span.setSpan(new BackgroundColorSpan(Color.YELLOW), 1, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
textView.setText(span);  </span>

效果图:


Android UI 组件系列(一):TextView 使用详解与常见属性 TextView 是 Android 开发中非常常用的 UI 组件,它不仅支持基本的文本显示,还提供了许多强大的功能和灵活的自定义选项。从简单的文本设置到图文混排、字体样式、阴影效果、富文本、HTML 渲染等,TextView 都能够满足大多数界面展示需求。掌握 TextView 的常见属性和高级特性,可以帮助开发者更加高效地设计和实现复杂的用户界面,使应用界面更加丰富和多样化。 阅读详情

相关推荐

【Android】UI组件之basicView-TextView

Android系统为我们提供了丰富的可视化用户界面组件,包括菜单、对话框、按钮、下拉列表等。Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上,所有的View的子类称为widget,所有的ViewGroup的子类称为Layout。...

weixin_51293984的博客 219

Android TextView 使用详解:常用属性、方法与布局实战

本文系统整理 Android TextView 的常用属性与方法,涵盖文本样式、对齐布局、行数省略、可点击交互与显示效果优化等核心能力。内容以“属性作用 + 使用场景 + 易错点”组织,帮助你快速定位正确配置并提升页面可读性与一致性。适合日常 UI 开发速查,也适合作为 TextView 基础资料沉淀。

帅次的博客 3万+

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

Android的TextView控件的属性使用

  目录                   TextView属性: 1.字体大小、颜色 2.字体过多显示不下用  .....表示  3.中划线、下划线  4.字体滚动    例子: 创建一个应用程序,命名为:E01_TextView01,空的Activity(Blank Activity),把布局文件修改成线性布局(LinearLayout):  2.在布局文件添加一...

广源的博客 3316

告别手动干预:深入浅出LPDDR5的Background ZQ校准与DVFSQ切换避坑指南

本文深入解析LPDDR5的Background ZQ校准与DVFSQ切换技术,帮助工程师实现DRAM阻抗校准的自动化管理。通过详细配置指南和实战案例,揭示如何避免动态电压调节下的模式切换陷阱,提升信号完整性和系统能效。特别适合嵌入式系统和移动终端开发者参考。

weixin_30329623的博客 454

使用GDScript(godot)生成仿杀戮尖塔地图

使用GDScript(godot)生成仿杀戮尖塔地图 extends Node2D export (PackedScene) var Ball var 被连接数 = {} # 每个怪物被下层怪物连接的数量 最多为2 var 连接1 = {} # 第一次连接的上层怪物位置 var 连接2 = {} # 第二次连接的上层怪物位置 var 怪物数量 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0] # 每层怪物的数量 var 总层数 =8 # 总层数 var 怪物坐标行 = {} #

weixin_45038716的博客 3010

Android组件详解—TextView

这篇博文献给正在android学习路上的弟弟,希望有一天以下内容对你有所帮助。 了解一个类,首先要了解他的结构,尤其是API中的这种类。 先了解下TextView的结构: java.lang.Object ↳ android.view.View ↳ android.widget.TextView Known Direct Subclasses(已知的直接子类) Button,CheckedText...

极客神殿 1097

ArcGIS属性表汉字转拼音

接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......,按照“配置方法1:”进行尝试,显示配置失败。

2301_77413856的博客 1295

android组件 TextView Button

1.显示文本的组件--TextView     (1)基本使用,显示文本                      除了以上在xml文件中配置相关属性,还可以通过在代码中进行设置,部分具体方法如下,其它类似:     A,设置背景           /*设置背景的三个方法           * 1--参数为颜色值           * 2--参数为Drawable对象

jiyang0504的专栏 918

vue3 - 高德地图定位出错Get ipLocation failed.Geolocation permission denied.(info: “FAILED“ | status: 0)报错解决!

vue3,nuxt3,高德地图,定位,位置,报错,AMap.Geolocation,解决报当前定位失败,高德地图H5 定位失败报错,web网页网站,报错详细解决教程,Get ipLocation failed.Geolocation permission denied.,高德地图定位报错info: "FAILED",高德地图status: 0,已经是https了还是报错,确保了浏览器位置已经开了,手机定位也开了,没解决,H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation,移动端设

✅ 精选推荐文章 6771

YOLOv11改进 | 损失函数改进篇 | MPDIoU、InnerMPDIoU助力细节涨点(二次创新 + 代码解析)

本文为读者详细介绍了YOLOv11模型的最新改进,带来的改进机制是最新的损失函数MPDIoU和融合了最新的Inner思想的InnerMPDIoU(效果打爆之前的所有的损失函数提升检测精度和处理细节方面的作用。通过深入探讨MPDIoU和InnerMPDIoU(全网首发)的工作原理和实际代码实现,本文旨在指导读者如何将这些先进的损失函数技术应用到YOLOv11模型中,以提高其性能和准确性。文章内容涵盖从理论基础、代码实现,到实际教你如何添加本文的机制到你的模型中。

Snu77的博客 4025

有关Android的TextView组件的几个问题

TextView组件与EditText类似,但有一些不同,理论上TextView是只读的。尝试了让TextView组件可以弹出SetError的提示信息,只读,并不能弹出Android软键盘。

scruffybear的专栏 827

AutoJs调用DeepSeek大模型接口实战教程 AutoJs接入DeepSeek、 DeepSeek API调用 、 手机脚本接入大模型

通过这篇文章,我们用 AutoJs 成功接入了 DeepSeek Chat API。使用发送请求在 Header 里正确携带 API Key从里拿到最终返回结果这样一来,你就可以在 AutoJs 里实现一个智能助手脚本,甚至做更复杂的 AI 自动化工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 468

Android之路-TextView组件

今天主要介绍的UI组件为: TextView 会演示TextView怎样将文本带上边框                            与超文本链接 TextView 自定义带边框的TextView 1.activity文件 package cn.class3g.activity; import android.content.Context; import

1995

17、自适应和学习索引:在线物理设计调整的新维度

本文探讨了现代数据库管理系统中自适应索引和数据库裂解的新方法,通过结合学习模型与多臂老虎机(MAB)框架,实现在线物理设计调整。文章详细介绍了自适应索引的工作原理、数据库裂解技术以及如何利用机器学习进行索引选择和优化,并讨论了MAB框架在动态调整索引结构中的应用及其实际案例。

go5gopher的博客 82

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

从零开始水安卓——基础UI组件2(Textview EditText)

目录 从零开始水安卓——基础UI组件1 Textview 概述 属性 ​ 代码里如何修改文本 ​ EditText 概述&amp;属性 输入事件变化 监听回车键 选取文本 从零开始水安卓——基础UI组件1 Textview 概述 向用户显示文本和选择性的允许用户编辑,是一个完整的文本编辑器,但基本的类配置不允许编辑。 是看视频自学的,视频中额外提到了帮助文档...

旧日灯塔 363

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android开发入门组件(一)——TextView

最近在学习安卓开发,顺便把自己的学习笔记写在这里,按需自取哈,也是日后复习的一个路子。 先从基础的组件开始学习,第一个就是TextView,用来放文字显示的用,具体按下面来写 首先看一个完整的TextView的写法 <TextView android:id="@+id/tv1" android:layout_width="wrap_content...

Demo.demo的博客 540

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android之UI组件TextView的属性大集合

Android之UI组件TextView的属性大集合 下载原码地址:http://download.youkuaiyun.com/detail/rhljiayou/3917103 1、先展示项目结构图: 主界面: 链接手机/网页/邮件/地址的界面效果: 文本显示内容处理界面: TextView显示图片的界面: 2、主界面很简单就三个按钮事件

任海丽(3G/移动开发) 2985

常用组件:android的文本Textview

讲完常用布局,单纯放点背景颜色绝对不是咱们的目标,更丰富的内容表现才是咱们就需要的,到了这时候,我们首先想到的就是文本内容如何显示,android专门提供了一个组件来解决这个问题,就是TextView,让我们一起来学习它吧! 一、关于TextView,最常用的核心api就是下面两个: android:text 设置显示文本. andr...

android开发入门学习 932

Android组件复习之基本组件01——TextView与Edittext的用法

文本框(TextView)与编辑框(EditText)详解重点一:TextView TextView直接继承了View,TextView还是EditText、Button个UI组件的父类,TextVeiw的作用就是在界面上显示文本。其实从功能上来看,TextVeiw其实就是一个文本编辑器,只是Android关闭了它的文字编辑功能。现在开发者用到的都是它的子类:EditText。TextView继

bobo8945510的博客 2196

Android UI之TextView组件

TextView组件: 直接之类:Button.CheckedTextView,Chronometer,DigitalClock,EditText 间接子类:AutoCompleteTextView,CheckBox,CompounButton,ExtractEditText,MultiAutoCompleteTextView, RadioButton,ToggleButton andro

LLLAZY520的专栏 1835

Android常用UI组件 - TextView

TextView是Android里面用的最多的UI组件,一般使用在需要显示一些信息的时候,其不能输入,只能初始设定或者在程序中修改。 实例:TextViewDemo 运行效果: 代码清单: 布局文件:main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

2325

android常用组件之TextView组件

1.文本框(TextView) 在Android中,文本框使用TextView表示,用于在屏幕上显示文本。Android中的文本框可以显示单行文本( android:singleLine="true")也可以是多行文本 (android:singleLine="false" 或者不写这个属性),以及带图片(android:drawableTop="@drawable/ic_launcher")的

Yangsha1997的博客 664

对Android组件TextView、EditText的全新理解

接触TextView和EditText有段时间了,以前做项目的时候基本上就只用到了他们的文本显示功能,涉及设定字体之类的操作。其实,它们都可以解析HTML文本。当然,要实现这一功能,需要结合android.text.Html,android.text.Html.ImageGetter等接口。 EditText.setText(""); 按照上面这种方式,只会显示类似于html的文本,并没有达到

知行谷 418

快速设置安卓textview组件长按复制文本

在布局文件的textview中添加属性:android:textIsSelectable="true" 即可,如下所示: <TextView android:id="@+id/email" android:layout_width="wrap_content" androi

yann02的博客 3408
上一篇: Wifi连接Android手机调试√
下一篇: Android ImageView组件
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值