Android TextView基本属性

TextView的常用属性

1.设置控件id

android:id="@+id/text\_view"  
android:id="@+id/textView"  

设置该控件的id,不同xml页面可以有相同的id,但同一个页面不能用相同的id,ID随便取。
id有两种写法,一种是骆驼峰,就是第一个单词首字母小写,后面的单词都是首字母大写,
另一种就是都是小写,单词之间用 _ 符号来分开。两种写法,我更倾向于这一种,

2.设置控件的宽度

android:layout\_width=“match\_parent” 填充完父布局的宽度,就是父布局的有多宽  
android:layout\_width=“wrap\_content” 自适应布局,看内容的大小而定  
android:layout\_width=10dp” 固定值:如10dp,控件固定10dp

3.设置控件的高度

android:layout\_height=“match\_parent” 填充完父布局的高度,就是父布局的有多高  
android:layout\_height=“wrap\_content” 自适应布局,看内容的大小而定  
android:layout\_height=10dp” 固定值:如10dp,控件固定10dp

4.设置背景

设置TextView控件的背景,可以是颜色,也可以是图片

android:background="#CCCCCC"  
android:background="@color/bg\_text\_color"  
android:background="@drawable/bg\_text"

5.设置内边距

android:padding=12dp” 设置四个边为12的内边距  
android:padding="@dimen/text\_padding"  
设置textView的内边距,上下左右都是上面的值,下面有单独设一边  
android:paddingTop=12dp”  
android:paddingBottom=12dp”  
android:paddingRight=12dp”  
android:paddingLeft=12dp”  
android:paddingEnd=12dp”  
android:paddingStart=12dp”  

这里的左右和前后是区别的,左右就一定是左右,但是前不一定是左,如果系统语言是从左到右:如中文,那么前就代表左,如果系统语言是从右开始 :那么前就代表右边,所以如果左右内边距一样,推荐使用left和right,但如果不一样,推荐使用start和end,不然从右到左显示的手机,会出现偏差

6.设置外边距

android:margin=12dp”  
android:marginTop=12dp”  
android:marginBottom=12dp”  
android:marginStart=12dp”  
android:marginEnd=12dp”  
android:marginLeft=12dp”  
android:marginRight=12dp”  

设置外边距,与内边距差不多,但他们区别在于,如果是自适应大小的控件,那么设置内边距后,控件会大很多,但字体还是一样大小,监听触发的面积大了,而外边距就是,控件大小不变,只是本控件与其他控件相隔12dp的距离,请注意内边距和外边距的使用

7.设置文字在控件的位置

android:gravity=“center”  
android:gravity=“center\_horizontal”  
android:gravity=“center\_vertical”  
android:gravity=“end”  
android:gravity=“start”  
android:gravity=“left”  
android:gravity=“right”  
android:gravity=“right|bottom”  

若控件大,但字体小的时候,该属性就发挥作用了,一个大面积的控件,字体显示的地方分别可以
左上,左中,左下,中上,居中,中下,右上,右中,右下9个位置

8.设置文字内容、字体大小、字体颜色、样式

android:text=This is TextView” 用于该控件显示的内容  
android:textSize=12sp” 用于控制该控件文字的大小,单位使用sp,同时AS建议字体大小不要低于12sp  
android:textColor="#FFFFFF" 用于设置字体的颜色  
上三种可以使用value文件夹里面的值文件,字符串、颜色值、与大小值  
android:text="@string/hello\_test"  
android:textSize="@dimen/text\_12\_sp"  
android:textColor="@color/textTitle"  
android:textStyle=“bold” 粗  
android:textStyle=“normal” 正常  
android:textStyle=“italic” 斜体

9.设置Ems

只有在宽度为自适应: android:layout\_width="wrap\_content"的时候才会生效  
android:minEms=10TextView一行最少有10个字符的宽度  
如果少于10个字符,TextView的宽度也为10个字符的宽度  
android:maxEms=3TextView一行最长只有3个字符的宽度

10.设置最小最大宽高度

android:minHeight=100dp”  
android:minWidth=100dp”  
android:maxHeight=400dp”  
android:maxWidth=400dp”

11.设置文本最多1行显示

android:maxLines=1”  
允许TextView最多只有一行,不管你TextView有多大,他都是只显示一行文字

12.设置文本最多输入x个字符

android:maxLength=10”  
允许TextView最多只有10个字符,超出不显示。

13.设置文本是否自动换行

默认是fasle,默认会自动换行  
android:singleLine=true” 内容只显示在一行上  
android:singleLine=false” 内容超出一行的最长限度会自动切换到下一行

14.设置间距

android:letterSpacing=0.50为默认,每增加0.1都有明显的变化  
若为负数 ,则为减少行距  
android:lineSpacingExtra="-6dp"

15.设置行距倍数

android:lineSpacingMultiplier=2”  
但只是设置默认行距的倍数,和android:lineSpacingExtra无关

16.设置行距倍数与额外行距

若没有android:lineSpacingExtra="10dp"属性,则总行距为默认的行距倍数  
但若有android:lineSpacingExtra=10dp”,则总行距为10dp + 默认行距的倍数

17.超出省略的使用

原文字:一二三四五六七八九十十一十二十三十四十五十六十七十八十九二十二十一二十二二十三
(一到二十三的数)

android:ellipsize 与 android:singleLine配合使用  
省略在前面,内容从最后开始往前,前面省略  
android:singleLine=true”  
android:ellipsize=“start”

省略在中间,内容前面从一开始,内容后面从最后开始,中间省略  
android:singleLine=true”  
android:ellipsize=“middle”

省略在末尾,内容从前面开始,后面省略  
android:singleLine=true”  
android:ellipsize=“end”

最简单的单行末尾省略  
android:singleLine=true”  
不需要ellipsize都会末尾省略

当要求两行以上的内容进行省略的时候,就无法使用singleLine了,这是就需要maxLines。  
android:ellipsize 属性配合android:maxLines使用,这时候,ellipsize只能设置尾部超出省略,其他几个属性没作用的。  
android:maxLines=2”  
android:ellipsize=“end”

判断内容是否省略

通过内部的getEllipsisCount()方法来获取省略的字数,如果是0,就是没有省略,大于0就是有省略

val ellipsizeCount = textView.layout.getEllipsisCount(textView.lineCount - 1)  
if (ellipsizeCount == 0) {  
Toast.makeText(this,"没有省略",Toast.LENGTH\_SHORT).show()  
}  
else {  
Toast.makeText(this, "超出省略了,且超出了${ellipsizeCount}个字符", Toast.LENGTH\_SHORT).show()  
}

跑马灯

必须设置单行  
android:singleLine=true”  
同时设置跑马灯属性  
android:ellipsize=“marquee”  
在设置为无限滚动  
android:marqueeRepeatLimit=“marquee\_forever”  
同时动态设置  
textView.setSelected(true);

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集

在这里插入图片描述
二、源码解析合集
在这里插入图片描述

三、开源框架合集
在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓

PS:群里还设有ChatGPT机器人,可以解答大家在工作上或者是技术上的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值