这是我参与「第四届青训营 」笔记创作活动的第2天
UI组件
常规UI组件
常规UI组件大多由Android Framework中的android.widget这个package提供的。
| 组件 | Java Class | Package |
|---|---|---|
| 文本组件 | TextView | android.widget.TextView |
| 图片组件 | ImageView | android.widget.ImageView |
| 按钮组件 | Button | android.widget.Button |
| 输入框组件 | EditText | android.widget.EditText |
| 复选框组件 | CheckBox | android.widget.CheckBox |
| 单选组件 | RadioButton | android.widget.RadioButton |
| ... | ... | ... |
常见的UI组件的属性和方法
TextView支持的常用XML属性:
| XML属性 | 描述 |
|---|---|
| android:autoLink | 指定是否将指定格式的文本转换为可单击的超链接形式,其属性值有none、web、email、phone、map和all |
| android:drawableBottom | 在文本框内文本的底部绘制指定图像,该图像可以是放在res\mipmap目录下的图片,通过“@mipmap/文件名(不包括文件的扩展名)”设置 |
| android:drawableLeft | 在文本框内文本的左侧绘制指定图像,该图像可以是放在res\mipmap目录下的图片,通过“@mipmap/文件名(不包括文件的扩展名)”设置 |
| android:drawableStart | 在Android4.2中新增的属性,在文本框内文本的左侧绘制指定图像,该图像可以是放在res\mipmap目录下的图片,通过“@mipmap/文件名(不包括文件的扩展名)”设置 |
| android:drawableRight | 在文本框内文本的右侧绘制指定图像,该图像可以是放在res\mipmap目录下的图片,通过“@mipmap/文件名(不包括文件的扩展名)”设置 |
| android:drawableEnd | 在Android4.2中新增的属性,在文本框内文本的右侧绘制指定图像,该图像可以是放在res\mipmap目录下的图片,通过“@mipmap/文件名(不包括文件的扩展名)”设置 |
| android:drawableTop | 在文本框内文本的顶部绘制指定图像,该图像可以是放在res\mipmap目录下的图片,通过“@mipmap/文件名(不包括文件的扩展名)”设置 |
| android:gravity | 设置文本框内文本的对齐方式,可选值有top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、center、fill、clip_vertical和clip_horizontal等。这些属性也可以同时指定。各属性值之间用竖线隔开。例如,要指定组件靠右下角对齐,可以使用属性值right/bottom |
| android:hint | 设置当文本框中文本内容为空时,默认显示的提示文本 |
| android:inputType | 指定当前文本框显示内容的文本类型,其可选值有textPassword、textEmailAddress、phone和date等,可以同时指定多个,使用一个竖线分隔 |
| android:singleLine | 指定该文本框是否为单行模式,其属性值为true或false,为true时表示该文本框不会换行,当文本框中的文本超过一行时,其超出部分将被省略,同时在结尾处添加“···” |
| android:text | 指定文本框中显示的文本内容,可以直接在该属性值中指定,也可以通过在string.xml文件中定义文本常量的方式指定 |
| android:textColor | 设置文本框内文本的颜色,其属性值可以是#rgb、#argb、#rrggbb或者#aarrggbb格式指定的颜色值 |
| android:textSize | 设置文本框内文本字体大小,其属性值由代表大小的数值和单位组成,其单位可以是dp、px、pt、sp和in等 |
| android:width | 指定文本框的宽度,其单位可以是dp、px、pt、sp和in等 |
| android:height | 指定文本框的高度,其单位可以是dp、px、pt、sp和in等 |
高级UI组件
高级UI组件大多是ViewGroup、比常规UI组件有多的功能。
| 组件 | Java Class |
|---|---|
| 滑动组件 | ScrollView |
| 列表组件 | ListView/RecyclerView |
| 下拉刷新组件 | PulToRefresh |
| 分页组件 | ViewPager |
| 布局组件 | LinearLayout/RealtiveLayout/... |
| ... | ... |
布局
LinearLayout:
| 属性 | 功能描述 |
|---|---|
| android:orientation | 布局内组件的排列方向 |
| android:layout_weight | 布局内组件大小权重 |
| android:divider | 布局内组件间分割线 |
| android:Dividers | 布局内组件间分割线位置 |
| android:dividerPadding | 布局内分割线padding |
RelativeLayout:
根据父容器定位:
| 属性 | 功能描述 |
|---|---|
| android:layout_centerInParent | 组件位于父容器中央位置 |
| android:layout_centerHorizontal | 组件位于父容器水平中央位置 |
| android:layout_centerVertical | 组件位于父容器垂直中央位置 |
| android:layout_alignParentTop | 组件与父容器顶部对齐 |
| android:layout_alignParentLeft | 组件与父容器左部对齐 |
| android:layout_alignParentRight | 组件与父容器右部对齐 |
| android:layout_alignParentBottom | 组件与父容器底部对齐 |
根据兄弟组件定义
| 属性 | 功能描述 |
|---|---|
| android:layout_above | 组件位于某组件上部 |
| android:layout_below | 组件位于某组件下部 |
| android:layout_toLeftOf | 组件位于某组件左部 |
| android:layout_toRightOf | 组件位于某组件右部 |
| android:layout_alignTop | 组件与某组件顶部对齐 |
| android:layout_alignLeft | 组件与某组件左部对齐 |
| android:layout_alignRight | 组件与某组件右部对齐 |
| android:layout_alignBottom | 组件与某组件底部对齐 |
除了以上的两种布局外还有FrameLayout、Constraintlayout。