常规&高级UI编程 | 青训营笔记

132 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

UI组件

常规UI组件

常规UI组件大多由Android Framework中的android.widget这个package提供的。

组件Java ClassPackage
文本组件TextViewandroid.widget.TextView
图片组件ImageViewandroid.widget.ImageView
按钮组件Buttonandroid.widget.Button
输入框组件EditTextandroid.widget.EditText
复选框组件CheckBoxandroid.widget.CheckBox
单选组件RadioButtonandroid.widget.RadioButton
.........

常见的UI组件的属性和方法

QQ图片20220730100547.jpg

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。

1.jpg