-
LinearLayout
:主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能放一个控件 -
RelativeLayout
:称作相对布局,非常常用的一种布局。和LinearLayout的排列规则不同,RelativeLayout显得更加随意一些,它可以通过相对定位的方式让控件出现在布局的任何位置,是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式。相对布局不是绝对定位,而是相对于其父容器或其他控件进行定位,提供了灵活性,允许开发者创建复杂的界面结构 -
android:layout_width、android:layout_height
:用于指定视图组件的宽度与高度,这两个属性可以接受以下3种类型的值:- 具体数值:如
50dp
、100px
等,这种方式将直接设置视图组件的具体大小 match_parent
:视图组件的大小将与其父容器的大小相同。在LinearLayout中,match_parent
将占据所有可用空间;在RelativeLayout中,match_parent
将占据相对于其他视图组件的位置wrap_content
:视图组件的大小将根据其内容动态调整。例如,一个TextView的大小将根据文本的多少自动调整
- 具体数值:如
-
android:layout_weight
:该属性用于在水平或垂直方向上分配额外的空间。当多个视图组件共享相同的空间时,layout_weight
将决定它们如何分配这些空间。例如,在一个水平LinearLayout中,如果两个按钮的layout_width
都设置为0dp
(表示不占用固定空间),然后分别设置它们的layout_weight
为1和2,那么第二个按钮将占据的空间将是第一个按钮的两倍 -
android:layout_marginTop
:指定该属性所在控件距上部最近控件的最小值 -
android:layout_marginBottom
:指定该属性所在控件距下部最近控件的最小值 -
android:layout_marginLeft
:指定该属性所在控件距左边最近控件的最小值 -
android:layout_marginRight
:指定该属性所在控件距右边最近控件的最小值 -
xmlns
:声明命名空间的保留字,其实就是XML中元素的一个属性 -
xmlns:android
:命名空间android
用于 Android 系统定义的一些属性 -
android:id
:ID是Android中布局文件中的控件引用的一个“标签”,它是在.xml文件中人为手动创建,如果想要引用布局文件中的控件,必须得为其设置ID属性,设置ID属性的方式有id=”@+id/xx
”和id=”@id/xx
”-
@+id/xx
:在.xml布局文件中,是为该控件生成一个ID,其名"xx",在后面引用该控件时以“R.id.xx”的形式引用。意思是R文件中生成int xx=value
,有两种情况:- R文件中不存在xx变量,则生成int xx=value即为控件新建一个id值
- 若R文件中已存在xx变量,则不再新建,直接引用该变量对应的id值
- 例如Button组件中,
android:id="@+id/Next_button"
,是为该Button设置一个名为Next_button
的ID;但在R.java中我们可以看到,android studio
底层已经为我们建立好了Next_button的
地址,只需按一定的格式(R.id.xx)引用即可:mNextButton = (Button) findViewById(R.id.next_button)
-
@id/xx
:在.xml布局文件中,提取已存在的值为该控件设置ID,如果不存在就会报错。为了重用id,可以在res/values目录下创建一个ids.xml文件, 在其中定义可以重用的id,然后在其他布局文件中使用@id
引用(这样可以减少R.java文件中生成的ID数量)
-
-
android:orientation
:在线性布局中,控件排列有水平和垂直两个方向,控件排列方向由android:orientation
属性来控制,该属性需要加在LinearLayout
标记的属性中从而设置该控件内的控件布局排列朝向:android:orientation = "horizontal"
:指定布局内控件排列方式为 水平排列android:orientation = "vertical"
:指定布局内控件排列方式为 垂直排列
-
gravity
:在android视图布局中,我们经常会用到“重心”gravity
这个属性。但是gravity有两种不同的类型:-
android:gravity
:控件自身内容对自己的限定,一般赋值为android:gravity = "center"
让控件自身内的内容(text文本、button按钮等)居中排列 -
android:layout_gravity
:与gravity属性不同的是,layout_gravity属性是用来设置该View相对与父View的位置,以下提供两种赋值使用类型:android:layout_gravity="center_horizontal"
:以父Vieworientation = "vertical"垂直
为准,水平居中于父Viewandroid:layout_gravity="center_vertical"
:以父Vieworientation = "horizontal"水平
为准,垂直居中于父View
- 注意事项:子控件如果选择横或纵居中,这种属性声明是不能和父布局的排列方式相冲的,案例如下:
android:layout_gravity="center_horizontal"
:以父Vieworientation = "horizontal"垂直
为准,相冲位置不变android:layout_gravity="center_vertical"
:以父Vieworientation = "vertical"垂直
为准,相冲位置不变
-
-
scaleType
:scaleType的设置方式有以下两种:android:scaleType="xxx"
:在layout的xml中定义android:scaleType="xxx"
,取值范围为matrix、fitXY、fitStart、fitCenter、fitEnd、center、centerCrop、centerInside
,默认取值为fit_center
。可以参考一下例子:android:scaleType="center"
:- 当图片大于ImageView的宽高:以图片的中心点和ImageView的中心点为基准,按照图片的原大小居中显示,不缩放,用ImageView的大小截取图片的居中部分
- 当图片小于ImageView的宽高:直接居中显示该图片
android:scaleType="centerCrop"
:- 当图片大于ImageView的宽高:以图片的中心点和ImageView的中心点为基准,按比例缩小图片,直到图片的宽高有一边等于ImageView的宽高,则对于另一边,图片的长度大于或等于ImageView的长度,最后用ImageView的大小居中截取该图片
- 当图片小于ImageView的宽高:以图片的中心店和ImageView的中心点为基准,按比例扩大图片,直到图片的宽高大于或等于ImageView的宽高,并按ImageView的大小居中截取该图片
android:scaleType="centerInside"
:- 当图片大于ImageView的宽高:以图片的中心和ImageView的中心点为基准,按比例缩小图片,使图片宽高等于或者小于ImagevView的宽高,直到将图片的内容完整居中显示
- 当图片小于ImageView的宽高:直接居中显示该图片
android:scaleType="fitCenter"
:把图片按比例扩大(缩小)到ImageView的宽或高其中一个,居中显示android:scaleType="fitStart"
:把图片按比例扩大(缩小)到ImageView的宽或高其中一个,在ImageView的上方显示android:scaleType="fitEnd"
:把图片按比例扩大(缩小)到ImageView的宽或高,在ImageView的下方显示android:scaleType="fitXY"
:把图片按指定的大小在ImageView中显示,拉伸或收缩图片,不保持原比例,填满ImageViewandroid:scaleType="matrix"
:运用图片进行绘制时的矩阵进行缩放,该矩阵可以通过imageView.setImageMatrix(matrix)进行设置。默认情况下展现形式为:不进行任何缩放,从ImageView的左上角开始摆放,原图超过ImageView的部分作裁剪处理
imageView.setScaleType(ImageView.ScaleType.XXX)
:在java代码中调用imageView.setScaleType(ImageView.ScaleType.XXX)
,取值范围为ImageView.ScaleType.MATRIX、ImageView.ScaleType.FIT_XY、ImageView.ScaleType.FIT_START、ImageView.ScaleType.FIT_CENTER、ImageView.ScaleType.FIT_END、ImageView.ScaleType.CENTER、ImageView.ScaleType.CENTER_CROP、ImageView.ScaleType.CENTER_INSIDE
,默认取值为ImageView.ScaleType.FIT_CENTER
-
android:background
:设置控件背景颜色,赋值为十六进制颜色代码,例如:#FFFFFF
即为白色 -
android:text
:标题文本 -
android:textAllCaps
:文本是否为大写,取值范围为true、false
-
android:textColor
:文本颜色,赋值为十六进制颜色代码,例如:#FFFFFF
即为白色 -
android:textSize
:文本大小