-
xmlns
:声明命名空间的保留字(Java中已经定义过的),其实就是XML中元素的一个属性
-
xmlns:app
:在使用library(编译文件)自定义属性时,命名空间URI需要使用http://schemas.android.com/apk/res-auto
,在编译时,URI会自动替换为当前app的package名,下面是使用support lib的属性(编译后apk的属性)例子
<android.support.v4.widget.DrawerLayout
android:id="@+id/dl_main_drawer"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include layout="@layout/navigation_content"/>
<android.support.design.widget.NavigationView
android:id="@+id/nv_main_navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/navigation_header"
app:menu="@menu/drawer_view"/>
</android.support.v4.widget.DrawerLayout>
-
xmlns:android
:命名空间 android
用于 Android 开发定义或布局的一些属性,例如Android视图开发中所使用的android:id、android:layout_width、android:layout_height、android:layout_weight...
等等,这其中的前缀android
都必须声明它的命名空间后才可以使用它操作属性。定义命名空间的规则为:xmlns:namespace-prefix=“namespaceURI”
,安卓开发中即xmlns:前缀=http://schemas.android.com/apk/res/应用程序包路径
,若要使用android作为前缀既为xmlns:android=http://schemas.android.com/apk/res/android
-
FrameLayout
:称作帧布局,这个布局可以直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果子控件的大小一样大的话,那么同一时刻就只能看到最上面的那个子控件,后续添加的子控件会覆盖前一个,虽然默认会将子控件放置在左上角,但是子空间也可以通过android:layout_gravity
属性指定到其他的位置。FrameLayout的属性很少就以下两个:
android:foreground
:设置帧布局容器的前景图像,一般赋值为@drawable/xx
,@代表引用资源,意思就是引用drawable文件夹中的xx图片文件
android:foregroundGravity
:设置前景图像显示的位置,可以把前景图像设置在左上角或右下角等角的地方,右下角应赋值为bottom|right
,左上角应赋值为top|left
- 前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片
-
LinearLayout
:称作线性布局,主要以android:orientation
的属性设置来排列界面中的控件是水平或是垂直。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能放一个控件
-
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
:指定该属性所在控件距上部最近控件的像素值(dp)
-
android:layout_marginBottom
:指定该属性所在控件距下部最近控件的像素值(dp)
-
android:layout_marginLeft
:指定该属性所在控件距左边最近控件的像素值(dp)
-
android:layout_marginRight
:指定该属性所在控件距右边最近控件的像素值(dp)
-
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"垂直
为准,水平居中于父View
android: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中显示,拉伸或收缩图片,不保持原比例,填满ImageView
android: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
:文本大小
-
<item android:state_pressed="true/false" ... />
:其中...
为代码体,android:state_pressed="true"
时即按钮按下时触发...
的代码体,android:state_pressed="false"
时即按钮松开时触发...
的代码体
-
android:src
:这是一个图片按钮的部分代码,一般赋值为@drawable/xx
,@代表引用资源,意思就是引用drawable文件夹中的xx图片文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现