1.在textview的周围添加图片
android:drawableBottom:在text的下方输出一个drawable,可以是图片,样式,颜色等。其他举一反三
android:drawableLeft
android:drawableRight
android:drawableTop
android:drawableStart
android:drawableEnd
android:drawablePadding:设置text与drawable的间距,是与drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用。
2.autoSizeMaxTextSize和autoSizeTextType
autoSizeMaxTextSize:最大字体大小
autoSizeTextType:textSize的大小会根据textView的宽高自动适配
在Android 8.0 (API level 26) 以上,才可以使用这个属性,不过通过拓展库可以最低支持到Android 4.0(API Level 14)及以上的系统(不过你的应用编译的targetSDKVersion必须在26及以上)。
在使用autoSizeTextType属性的时候宽高属性最好是固定的参数,或者设置maxHeight和maxWidth限制一下控件的宽高
如果只设置了autoSizeTextType属性的话,默认的textSize是12sp~112sp,粒度为1px
android:autoSizeMaxTextSize="???sp"
android:autoSizeTextType=“uniform”
如果想让TextView自动扩大尺寸以充分填满TextView,则将autoSizeTextType设置为"uniform"(autoSizeTextType只有"uniform"和"none"两种可取值),并且将最大允许尺寸(属性autoSizeMaxTextSize)设置为“你设置的值”sp
uniform:统一的水平和垂直文本大小缩放以适应容器。
none:没有自动调整大小(默认)
android:autoSizeMinTextSize="???sp"
android:autoSizeTextType=“uniform”
当文本很长,但又想自动缩小字体尺寸,以在TextView内单行全部显示时
总结: 让文本尽可能占满控件(文本太长时自动减小字体尺寸,而文本短时则自动增大字体尺寸)
autoSizeStepGranularity属性取值为字体尺寸,如"1sp"、"2sp"等,指定Android在搜索最佳字体尺寸时的迭代步长。
autotoSizePresetSizes则指定了所有尺寸的候选值,是数组类型,需要先在values/arrays.xml里定义一个数组,如下例:
<?xml version="1.0" encoding="utf-8"?> 12sp 16sp然后autoSizePresetSizes属性引用这个数组:
<TextView
…
android:autoSizePresetSizes="@array/sizes" />
autotoSizePresetSizes的优先级高于autoSizeStepGranularity(即同时设置了autotoSizePresetSizes和autoSizeStepGranularity,则autoSizeStepGranularity的值将被忽略)。
4.shadowDX、shadowDy、shadowRadius
TextView的XML属性中关于阴影的几条属性
shadowDX、shadowDy、shadowRadius,分别是阴影的横、纵坐标偏移,以及阴影的半径,这个自己用一下就理解了。
5.android:autoLink
控制是否自动找到 url 和电子邮件地址等链接并将其转换为可点击的链接。默认值为"none",禁用此功能。
必须是以下常量值中的一个或多个(以"|"分隔)。
Constant Value Description
all f 匹配所有模式(相当于 web|email|phone|map)。
email 2 匹配电子邮件地址。
map 8 匹配地图地址。弃用
none 0 不匹配任何模式(默认)。
phone 4 匹配电话号码。
web 1 匹配 Web URL。
相关方法:setAutoLinkMask(int)
6. maxLength最多显示几行,单行也可用android:singleline=“true”
7.ellipsize,内容显示不下时,显示…(位置最前、中间、最后都可以),这里要加行数限制才行
7. lineSpacingMultiplier 行距
8. android:background="@drawable/可以设置shape" 设置背景
9. shape
shape不是textview的,但经常用于设置为textview的背景
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--radius四个圆角统一设置,也可以单独对某一个圆角设置。例:topLeftRadius-->
<corners android:radius="8dp"/>
<!--边框宽度width、颜色color-->
<stroke android:width="1dp" android:color="@color/color_ff0000" />
<!--渐变的颜色设置开始到结束-->
<gradient
android:startColor="@color/color_188FFF"
android:centerColor="@color/color_FF773D"
android:endColor="@color/color_ff0000"
android:type="linear"
/>
</shape>
10.allowUndo
是否应允许对可编辑文本进行撤消。默认为真。
可以是布尔值,例如 “true"或"false”。
11.autoText
如果设置,则指定此 TextView 具有文本输入法并自动更正一些常见的拼写错误。默认值为"假"。
12.capitalize
如果设置,则指定此 TextView 具有文本输入法并应自动将用户键入的内容大写。默认值为"无"。
characters 3 大写每个字符。
none 0 不自动大写。
sentences 1 将每个句子的第一个单词大写。
words 2 将每个单词的第一个字母大写。
13.cursorVisible
使光标可见(默认)或不可见。
14.digits
如果设置,则指定此 TextView 具有数字输入法,并且这些特定字符是它将接受的字符。如果设置了此项,则暗示数字为真。默认值为假。
15.editable
如果设置,则指定此 TextView 具有输入法。除非另有说明,否则它将是文本文件。对于 TextView,默认为 false。对于 EditText,默认为 true。
16.elegantTextHeight
优雅的文本高度,特别是对于不太紧凑的复杂脚本文本。可以是一个布尔值,例如 “true"或"false”。
17.ellipsize
如果设置,会导致长于视图宽度的单词被椭圆化而不是在中间断开。您通常还希望设置 scrollHorizontally 或 singleLine,以便将整个文本也限制在一行中,而不是仍然允许分成多行。
18.ems
使TextView正好有这么多em宽。可以是一个整数值,例如" 100"。
19.enabled
指定是否启用小部件。启用状态的解释因子类而异。例如,未启用的 EditText 会阻止用户编辑包含的文本,而未启用的 Button 会阻止用户点击按钮。如果评估 state_enabled 时引用的可绘制对象不同,则启用和非启用小部件的外观可以不同。
20.fallbackLineSpacing
是否尊重用于显示文本的回退字体的上升和下降。如果为真,最终被使用的后备字体可以增加使用它们的行的上升和下降。
21.android:firstBaselineToTopHeight
从 TextView 顶部到第一个文本基线的距离。如果设置,这将覆盖为 paddingTop 设置的值。
22.fontFamily
文本的字体系列(由字符串命名或作为字体资源参考)。可以是字符串值,使用 ‘\;’ 转义 Unicode 字符的字符,例如 ‘\n’ 或 ‘\uxxxx’;
23.fontFeatureSettings
字体功能设置。可以是字符串值,使用 ‘\;’ 转义 Unicode 字符的字符,例如 ‘\n’ 或 ‘\uxxxx’;
24.android:fontVariationSettings
字体变化设置。可以是字符串值,使用 ‘\;’ 转义 Unicode 字符的字符,例如 ‘\n’ 或 ‘\uxxxx’;
25.freezesText
如果设置,除了元数据(例如当前光标位置)之外,文本视图将在其冻结的冰柱内包含其当前完整文本。默认情况下这是禁用的;当文本视图的内容未存储在持久性位置(例如内容提供程序)中时,它会很有用。因为 EditText无论属性值如何,它始终处于启用状态。
26.includeFontPadding
为上升和下降留出足够的空间,而不是严格使用字体上升和下降。(通常为真)。
27.inputMethod
如果设置,则指定此 TextView 应使用指定的输入法(由完全限定的类名指定)。
28.inputType
放置在文本字段中的数据类型,用于帮助输入法决定如何让用户输入文本。此处的常量对应于由 定义的常量 InputType。通常,您可以选择单个值,但也可以按照指示将某些值组合在一起。将此属性设置为除此之外的任何内容 none 也暗示文本是可编辑的。
29.lastBaselineToBottomHeight
从 TextView 底部到最后一个文本基线的距离。如果设置,这将覆盖为 paddingBottom 设置的值。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
30.letterSpacing
文本字母间距。可以是一个浮点值,例如" 1.2"。
31.lineHeight
文本行之间的显式高度。如果设置,这将覆盖为 lineSpacingExtra 和 lineSpacingMultiplier 设置的值。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
32.lineSpacingExtra
文本行之间的额外间距。该值不会应用于最后一行文本。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
33.lineSpacingMultiplier
文本行之间的额外间距,作为乘数。该值不会应用于最后一行文本。可以是一个浮点值,例如" 1.2"。
34.lines
使 TextView 正好是这么多行高
35.linksClickable
如果设置为 false,即使 autoLink 导致找到链接,也不会将移动方法设置为链接移动方法。
可以是一个布尔值,例如 “true"或"false”。
36.marqueeRepeatLimit
重复选取框动画的次数。仅当 TextView 启用了选取框时才应用。
37.maxEms
使 TextView 最多有这么多 em 宽。
38.maxHeight
使 TextView 最多有这么多像素高。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
39.maxLines
使 TextView 最多有这么多行高。当用于可编辑文本时,该inputType属性的值必须与textMultiLine要应用的 maxLines 属性的标志相结合。
40.numeric
如果设置,则指定此 TextView 具有数字输入法。默认值为假。
41.password
字段的字符是否显示为密码点而不是本身。
可以是一个布尔值,例如 “true"或"false”。
42.phoneNumber
如果设置,则指定此 TextView 具有电话号码输入法。默认值为假。
可以是一个布尔值,例如 “true"或"false”。
43.privateImeOptions
提供给附加到文本视图的输入法的附加内容类型描述,这是输入法的实现私有的。这只是在EditorInfo.privateImeOptions输入法连接时填写该字段。
可以是字符串值,使用 ‘\;’ 转义 Unicode 字符的字符,例如 ‘\n’ 或 ‘\uxxxx’;
44.scrollHorizontally
是否允许文本比视图更宽(因此可以水平滚动)。可以是一个布尔值,例如 “true"或"false”。
45.selectAllOnFocus
如果文本是可选的,则在视图获得焦点时将其全部选中。
可以是一个布尔值,例如 “true"或"false”。
46.shadowColor
在文本下方放置一个模糊的文本阴影,用指定的颜色绘制。
47.shadowDy
文本阴影的垂直偏移。可以是一个浮点值,例如" 1.2"。
相关方法:setShadowLayer(float,float,float,int)
48.shadowRadius
文本阴影的模糊半径。可以是一个浮点值,例如" 1.2"。
49.textAllCaps
以全部大写形式呈现文本。这可以会在可用时使用小型股形式。
可以是一个布尔值,例如 “true"或"false”。
50.textAppearance
基本文本颜色、字体、大小和样式。
可以是对另一个资源的引用,形式为"@[+][package:]type/name"或形式为"?[package:]type/name"的主题属性。
51.textFontWeight
TextView 中使用的字体的粗细。可以是一个整数值,例如" 100"。
android:textIsSelectable
表示可以选择不可编辑文本的内容。可以是一个布尔值,例如 “true"或"false”。
52.textScaleX
设置文本的水平比例因子。可以是一个浮点值,例如" 1.2"。
53.textStyle
文本的样式(正常、粗体、斜体、粗体|斜体)。
54.typefac
文本的字体(正常、无衬线、衬线、等宽)。必须是以下常量值之一。
55.focusable
当我们写代码的时候总会发现有的控件获取不到焦点,那是因为ImageButton,Button等都是抢占焦点的控件
android:focusable=”true” 这行的意思就是说可以获取焦点
android:focusable=”false” 这行就是不可获取焦点
可以根据需求来写要不要获取焦点。
焦点的作用:假如某控件没有焦点,相当于你点不到那个控件。不能对其进行监听操作等。
应用场景: 在我们实现底部导航功能时,可以给想应的导航栏控件设置获取焦点的属性,提高用户体验度。
56.textCursorDrawable
EditText有一个属性:android:textCursorDrawable,这个属性是用来控制光标颜色的
android:textCursorDrawable="@null","@null"作用是让光标颜色和textcolor一样
PS:
textcursordrawable 在framework 的textview 中有这个 它代表的就是光标,是一张点9图片 ,只要去换这张图片可以了
这张图片在framework/core/res/res/values/themes.xml 中去更换。
在应用层也可以再editText中设置
在EditText中插入下面语句,增加一个属性,就可以设置输入框中光标的颜色android:textCursorDrawable="@drawable/ic_png"也可以更换光标
经过测试发现大部分手机的光标颜色通过上述代码都可以改变,但发现华为手机的输入框光标颜色还是系统自带颜色,设置的颜色无效果。那么还需要在EditText中加入下面的语句,才能使得华为手机的输入框光标颜色生效。
android:imeOptions="normal"