1.Android控件属性收集
2017-01-18 本文已影响117人
android_赵乐玮
最近在做ui方面的工作,收集这些属性方便日后快速查找
具体详情还是看官方文档比较好(没有比官网更好的文档):
https://developer.android.com/index.html
@autho: zlw email: 739043667@qq.com 欢迎交流
目录:
一、TextView、EditText 属性
二、CardView 常见属性
三、ToolBar 的属性
一、TextView、EditText 属性
【输入样式】
1.android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)
2.android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
4.android:cursorVisible设定光标为显示/隐藏,默认显示。
5.android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”
6.android:editorExtras设置文本的额外的输入数据。
7.android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间; ”marquee” ——以跑马灯的方式显示(动画横向移动)
android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。
【文字样式】
8.android:capitalize设置英文字母大写类型。-EditView
9.android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。
10.android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度
android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。
11.android:maxLength限制显示的文本长度,超出部分不显示。
12.android:password以小点”.”显示文本
android:phoneNumber设置为电话号码的输入方式。
13.android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。
14.android:shadowDx设置阴影横向坐标开始位置。
android:shadowDy设置阴影纵向坐标开始位置。
android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。
15.android:textColorLink文字链接的颜色.
16.android:textScaleX设置文字之间间隔,默认为1.0f。
17.android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开
18.android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]
【段落】
19.android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:maxLines设置文本的最大显示行数,超出部分自动换行,超出行数将不显示。
android:minLines设置文本的最小行数,与lines类似。
20. android:lineSpacingExtra设置行间距。
android:lineSpacingMultiplier设置行间距的倍数。如”1.2”
21.android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。
【功能】
22. android:freezesText设置保存文本的内容以及光标的位置。
23.android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。
24.android:imeActionId设置IME动作ID。
25.android:imeActionLabel设置IME动作标签。
26.android:linksClickable设置链接是否点击连接,即使设置了autoLink。
27.android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。
28.android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。
29.android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。
特殊示例:
- 修改光标样式
android:textCursorDrawable="@drawable/edittext_cursor"//修改光标样式
android:cursorVisible="true"
- MD 风格 (design包)
<android.support.design.widget.TextInputLayout>...
- 键盘提交EditView
//EditText样式
android:imeOptions="actionSend"
android:inputType="text" />
//事件监听
editView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
onClickCommit();
}return false;}});
4.TextView 自由复制
android:textIsSelectable="true"
二、CardView属性
app:cardBackgroundColor这是设置背景颜色
app:cardCornerRadius这是设置圆角大小
app:cardElevation这是设置z轴的阴影
app:cardMaxElevation这是设置z轴的最大高度值
app:cardUseCompatPadding是否使用CompatPadding
app:cardPreventCornerOverlap是否使用PreventCornerOverlap 设置内边距,在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠
app:contentPadding 设置内容的padding
android:foreground="?android:attr/selectableItemBackground" 波纹效果和clickable一起使用
--注意事项:
*cardview默认不允许点击,如若点击需设置clickable=true
三、ToolBar 的使用
https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
常用示例:
app:contentInsetStart 设置toolbar前边距(默认不为0)
app:title
app:logo
--注意事项:
*使用Toolbar必须去掉默认导航栏:
supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
*附录
单位换算公式:
px = (density/160)dp //density一般为3个常用固定值240/160/120
1in=72pt //in:英寸
1dp = 1sp
density 单位: px/in 理解为: density = px/in
==》px = density * in
//系数速查表
低(120dpi) 中(160dpi) 高(240dpi) 超高(320dpi) 超超高(480dpi)
低(0.75) 中(1)、 高(1.5)、 超高(2)、 超超高(3)
系数公式: 系数 =density / 160dpi
举个栗子:
160dpi :1px = 1dp ; 240dpi :2px = 1dp
换算公式: dp = 系数 * px ==> dp = (density / 160) * px
pt换算公式:
1in=72pt
density = px/in
==> density = px/72pt
==> pt = px/(72*density)
============================
综上所述:
pt = px/(72*density) 或 pt = px/(72*160*系数)
dp = (density / 160) * px 或 dp = 系数 * px (常用)
>> pt = (72*density *density /160)dp 或 pt = 1/(72*160*系数*系数) dp