安卓常见的UI布局及控件的使⽤
⽬录
1. 布局的介绍:
2. View类的常⽤xml属性:
3. LinearLayout
4. RelativeLayout
5. Android UI控件及UI组件
6. 基本控件:——TextView:
7. 基本控件:——EditText:
8. 基本控件:——Button:
9. 在代码中设置View的常⽤xml属性及⽅法说明
⼀、布局的介绍:
1、在4.0以前版本中⼀共有五种布局,都是ViewGroup的⼦类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。⽽TableLayout是LinearLayout的⼦类。(中⽂分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
2、在2.2操作系统中将AbsoluteLayout过期。⽽⽬前TableLayout也逐渐少⽤。
3、在4.0之后⼜新增GridLayout。(GridLayout最经典的案例是计算器界⾯)
总之,Android中⼀共有六种布局。⽬前推荐使⽤RelativeLayout、LinearLayout、GridLayout三种布局。
⼆、View类的常⽤xml属性:
(⼀)、类结构:
java.lang.Object
↳ android.view.View
(⼆)、View及其⼦元素常⽤属性:(各种布局及控件的共同属性)
android:id
android:background
android:onClick 为该控件的单击事件绑定
android:padding 设置控件四周的填充区域
android:visibility 设置该控件是否可见(invisible/visible/gone)
android:alpha 设置该组件透明度(0-1之间的数值)
android:layout_height ⼦组件的布局⾼度
android:layout_width ⼦组件的布局宽度
android:layout_margin 设置⼦组件的外边距
三、LinearLayout:
(⼀)、概念:线性布局控制其中的控件或组件横向或纵向排列。在线性布局布局中,每⼀⾏或每⼀列只能放单独⼀个控件。线性布局不会换⾏。当控件排列到窗体边缘,后⾯的控件就被隐藏,⽽不会显⽰出来。
线性布局的默认⽅向是⽔平⽅向(Horizontal),还有⼀个选项是vertical。
(⼆)、LinearLayout的常⽤属性:
1.android:orientation 定义布局内控件或组件的排列⽅式
可选项:vertical 、 horizontal
2.android:layout_width 定义控件的宽度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全⼀致,都是填充整个⽗控件。但是⾃2.2版本开始推荐使⽤match_parent 。
wrap_content指的是该控件的宽度正好包裹内容物。
3.android:layout_height 定义控件的⾼度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全⼀致,都是⾼度填充整个⽗控件。wrap_content指的是该控件的⾼度正好包裹内容物。
4.android:id 设置控件的id。这样就可以在R.java中⾃动⽣成相应的值,在程序中通过findViewById就可以调⽤。
设置id的格式为:android:id = "@+id/id的名字"
5.android:background 设置控件的背景颜⾊或背景图⽚
例如:android:background="#ffffff"
android:background="@drawable/图⽚名称"
【备注:】
颜⾊有RGB颜⾊格式和ARGB格式。RGB是红绿蓝三原⾊。⽽ARGB是带alpha的三原⾊,即有透明度
的三原⾊。
#FFFFFF 代表⽩⾊
#000000 ⿊⾊
#FFFFFFFF 完全不透明
#00FFFFFF 完全透明
#88FFFFFF 半透明
6.android:layout_weight 设置控件的权重。即各控件在⽔平或者垂直⽅向上平均分配。
备注:如果是⽔平⽅向设置权重,要将android:layout_width设置为0dp,如果是垂直⽅向上使⽤权重,要将 android:layout_height设置为0dp。否则权重容易受到⾼度或宽度的⼲扰⽽出现偏差。
7.android:gravity 该属性⽤来控制该View的内容物的位置。
如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。
如果该属性出现在Button、TextView、EditText等控件中,则⽤来控制这些控件上的⽂字的位置。
可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
【备注:】本属性与android:layout_gravity不同。
8.android:layout_gravity 该属性⽤于设置控件相对于容器的对齐⽅式。
可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。
这些可选项中不是适⽤于每⼀种布局。在垂直线性布局中,android:gravity为bottom不起作⽤;⽽⽔平线性布局中,
android:gravity为right不起作⽤。
【备注:】⽽本属性是android:layout_gravity属性,与 android:gravity 属性不同。
(三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性】
1、android:orientation 布局管理器内组件的排列⽅式
2、android:gravity 设置布局管理器内组件的对齐⽅式
3、android:weightSum
(四)、 LinearLayout ⼦元素的特有属性:
1、android:layout_weight ⼦元素在 LinearLayout 中所占的权重
2、android:layout_gravity ⼦元素在 LinearLayout 中的对齐⽅式
四、RelativeLayout:【掌握】
(⼀)、概念:指按着控件之间的相对位置来进⾏布局。
(⼆)、RelativeLayout特有属性:
1、android:gravity 设置布局容器内⼦控件的对齐⽅式
2、android:ignoreGravity 设置布局管理器内哪个控件不受gravity属性的影响(三)、RelativeLayout⼦元素的特有属性:LayoutParams
A、第⼀组:指兄弟控件之间的相对位置。该组属性的值是另⼀个控件的id。
layout_toRightOf 该控件在哪个控件的右侧
layout_toLeftOf 该控件在哪个控件的左侧
layout_above 该控件在哪个控件的上侧
layout_below 该控件在哪个控件的下侧
B、第⼆组:指兄弟控件之间的对齐关系。该组属性的值是另⼀个控件的id。
layout_alignRight 该控件与哪个控件的右对齐
layout_alignLeft 该控件与哪个控件的左对齐
layout_alignTop 该控件与哪个控件的顶对齐
layout_alignBottom 该控件与哪个控件的底对齐
C、第三组:指控件与⽗布局之间的对齐关系。该组属性的值是true或者false。
layout_alignParentRight 该控件与⽗布局控件的右对齐吗?
layout_alignParentLeft 该控件与⽗布局控件的左对齐吗?
layout_alignParentTop 该控件与⽗布局控件的顶端对齐吗?
layout_alignParentBottom 该控件与⽗布局控件的底部对齐吗?
layout_centerInParent 该控件位于⽗布局控件的中⼼位置吗?
layout_centerVertical 该控件位于⽗布局控件的垂直中⼼位置吗?
layout_centerHorizontal 该控件位于⽗布局控件的⽔平中⼼位置吗?
五、Android UI控件及UI组件:
(⼀)、控件名称:【标红⾊的为常⽤的】
TextView ⽂本视图
EditText ⽂本编辑框
Button 按钮
ImageView、Gallery 图像视图、画廊(建议过期)
ImageButton 图⽚按钮
ToggleButton 、Switch 开关按钮、开关
RadioButton 单选按钮
CheckBox 多选框
Spinner 下拉列表
AutoCompleteTextView ⾃动完成⽂本框
ProgressBar 进度条
SeekBar 拖动条
RatingBar 星级评分条
TimePicker、DatePicker 时间选择器、⽇期选择器
AnalogClock、DigitalClock 模拟时钟、数字时钟
Dialog(AlertDialog、ProgressDialog、TimePickerDialog、DatePickerDialog)提⽰对话框、进度对话框、时间选择对话框、⽇期选择对话框
ListView、GridView 列表视图【最重要的UI组件】、 ⽹格视图
ScrollView 滚动视图
ExpandableListView 可展开列表视图
WebView ⽹页视图
SearchView 搜索框
TabHost 书签选项卡
Notification 、Toast 通知 、 吐司(短时提醒)
Menu(OptionMenu /SubMenu、ContextMenu) 菜单(选项菜单、上下⽂菜单)
ImageSwitcher、TextSwitcher 、 ViewPager 图像切换器、⽂本切换器
ActionBar 动作导航条
六、基本控件:——TextView:
(⼀)、TextView类结构:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
(⼆)、TextView 常⽤属性:
1、andorid:text 设置⽂本的内容
2、 android:textColor 设置⽂本的颜⾊
3、 android:textSize 设置⽂本的字体⼤⼩(sp)
4、andorid:height 设置⽂本的⾼度,以像素为单位
5、 android:width 设置⽂本的宽度,以像素为单位
6、 android:inputType 设置⽂本的类型。例如是普通⽂本,还是email,password,数字等等。
7、 android:singleLine 设置⽂本是否是单⾏显⽰。
8、android:gravity 设置⽂本框内⽂本的对齐⽅式。可选项有:top、bottom、left、right、center、fill、
center_vertical、center_horizontal、fill_horizontal等等。这些属性值也可以同时指定,各属性值之间⽤竖线隔开。例如right|bottom
9、android:drawableLeft ⽤于在⽂本框左侧绘制图⽚。该属性值通过“@drawable/图⽚⽂件名”来设置。
10、android:drawableRight ⽤于在⽂本框左侧绘制图⽚。该属性值通过“@drawable/图⽚⽂件名”来设置。
11、android:drawableTop ⽤于在⽂本框左侧绘制图⽚。该属性值通过“@drawable/图⽚⽂件名”来设置。
12、android:drawableBottom ⽤于在⽂本框左侧绘制图⽚。该属性值通过“@drawable/图⽚⽂件名”来设置。
控件的使用13、android:autoLink 给指定的⽂本增加可单击的超链接。可选项为:none、web、email、phone、map和all。 多个选项之间使⽤“|”分隔,也可以使⽤all。
14、android:hint 设置当⽂本框内⽂本内容为空时,默认显⽰的提⽰性⽂字
【补充:】
1、android:textAllCaps="true" 设置所有字母都⼤⼩
2、android:ellipsize="end" ⽂字过长,设置省略号。可选项:start , end ,middle,marquee
android:ellipsize="start" 省略号在开头
android:ellipsize="middle" 省略号在中间
android:ellipsize="end" 省略号在结尾
android:ellipsize="marquee" 跑马灯显⽰
【备注:】要实现跑马灯效果。要同时具有以下属性。
android:ellipsize="marquee"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
七、基本控件:——EditText:
(⼀)、 EditText 类结构:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.EditText
所以 EditText 继承了TextView的所有属性。
(⼆)、android:inputType的可选项:
android:inputType="textPersonName"
android:inputType="textPassword"
android:inputType="numberPassword" 只可以输⼊数字
android:inputType="textEmailAddress"
android:inputType="phone" 只允许输⼊数字,括号等特殊符号,不可以输⼊字母。
android:inputType="textPostalAddress"
android:inputType="time"
android:inputType="date"
android:inputType="number"
⼋、基本控件:——Button:
(⼀)、Button类结构:
java.lang.Object
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论