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=“10”
TextView一行最少有10个字符的宽度
如果少于10个字符,TextView的宽度也为10个字符的宽度
android:maxEms=“3”
TextView一行最长只有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.5”
0为默认,每增加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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容