Android RelativeLayout相对布局和基本UI控件
一、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 该控件位于父布局控件的水平中心位置吗?
【备注:】 sp、dp、dip、pt、px等单位的区别?
- dpi dpi指像素密度。dots per inch ,即每英寸内像素点的个数。它不是表示长度的单位。在android中认为:低(120dpi),中(160dpi),高(240dpi),超高(320dpi)。随着技术的增长,实际dpi已经超出这个定义范围。
- dip device independent pixels ,即与设备无关的像素。目前这个单位已经被dp所取代,而不建议使用dip。
- dp 与dip的概念一样。不过dp已经取代了dip。在Android中用来表示非文字大小的尺寸。例如:外边距、内填充等。
- sp scale independent pixel ,即与缩放比例无关的像素。在android中常用来表示文字大小。
- px 表示像素。因为同样是200px,但是在不同手机下显示的大小是不同的。
- pt point磅。1磅=1/74英寸
- 总之:dp是用来定义非文字的尺寸,sp用来定义文字大小。px只用于产生一条一像素的分割线时使用。
二、基本控件:—— ImageView:
(一)、类结构:
(二)、 ImageView 常用属性:java.lang.Object↳ android.widget.ImageView↳ android.view.View
1、andorid:
src 设置图片来源。属性值为android:src="@drawable/图片名称"
2、android:
adjustViewBounds 用于设置 ImageView 是否调整自己的边界,来保持所显示图片的长宽比例。属性值为true或false
3、 android:
maxHeight 设置 ImageView 的最大高度。需要先设置android:adjustViewBounds为true,否则不起作用。
4、andorid:
maxWidth 设置 ImageView 的最大宽度。需要先设置android:adjustViewBounds为true,否则不起作用。
5、 android:
scaleType 设置所显示的图片如何缩放或移动,以适应ImageView的大小。可选项:fitCenter、fitStart 、 fitEnd、 fitXY 、 center、centerCrop、centerInside、matrix
- matrix :保持原图大小、从左上角的点开始,以矩阵形式绘图。
- fitXY :把图片按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满View.
- fitStart :把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置
- fitCenter :把图片按比例扩大(缩小)到View的宽度,居中显示
- fitEnd :把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置
- Center : 以原图的几何中心点和ImagView的几何中心点为基准,按图片的原来size居中显示,不缩放, 当图片长/宽超过View的长/宽,则截取图片的居中部分显示ImageView的size. 当图片小于View 的长宽时,只显示图片的size,不剪裁。
- centerCrop :以原图的几何中心点和ImagView的几何中心点为基准,按比例扩大(图片小于View的宽时)图片的size。 居中显示,使得图片长 (宽)等于或大于View的长(宽),并按View的大小截取图片。 当原图的size大于ImageView时,按比例缩小图片,使得长宽中有一向等于ImageView,另一向大于ImageView。 实际上,使得原图的size大于等于ImageView
- centerInside :以原图的几何中心点和ImagView的几何中心点为基准,将图片的内容完整居中显示, 通过按比例缩小原来的size使得图片长(宽)等于或小于ImageView的长(宽)
(三)、ImageView常用方法:
1、setImage Bitmap()2、setImage Drawable()3、setImage Resource()
三、ImageButton:用法同ImageView
ImageButton与ImageView的使用开发中如何进行选择?
注意: ImageButton和ImageView的使用并没有明显的差距,一般如果只是显示图片建议使用ImageView
如果需要添加相应的事件需要使用ImageButton
四、基本控件:—— RadioButton及RadioGroup
(一)、类结构介绍:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.
LinearLayout
↳ android.widget.RadioGroup
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.RadioButton
RadioButton继承于Button,所以具有普通按钮的各种属性,但是与普通按钮不同的是,RadioButton提供了可选中的功能。在使用RadioButton的时候,要使用
RadioGroup来包围起这些
RadioButton。
【备注:】
RadioGroup是
LinearLayout的子类,所以RadioGroup本质上是一个存放RadioButton的布局容器。
需要记住的是:默认的LinearLayout布局的
Orientation属性是
水平的,而默认的RadioGroup的
Orientation属性是
垂直的。
(二)、RadionGroup中的setOnCheckedChangeListener()监听
(二)、重点记忆的类方法:
1、RadioGroup类中的
getCheckedRadioButtonId()
(三)、RadioButton也可以设置setOnClickListener()
五、CheckBox:
(一)、 类结构介绍:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.CheckBox
CheckBox继承于Button,所以具有普通按钮的各种属性,但是与普通按钮不同的是, CheckBox 提供了可选中的功能。
【备注:】CheckBox有一个父类是
CompoundButton,所以在使用监听器的时候要注意跟单选项进行区别。
参考代码如下: