Android四大组件和六大布局
Android开发中的核心组件包括四大组件和六大布局。四大组件分别是Activity(界面展示)、Service(后台服务)、BroadcastReceiver(事件监听)和ContentProvider(数据共享)。六大布局包括LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)、Constraint
Android四大组件和六大布局
文章目录
Android四大组件
在安卓开发中,有四个核心组件共同支撑着APP,他们分别是Activity(活动),Service(服务),BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。
(1)Activity:通俗来讲其实就是APP上用户看到的一个个页面,Activity组件负责界面展示、处理用户交互、进行数据传递等
(2)Service:无界面的后台组件,用于执行长期运行的操作。比如说应用商店后台下载东西、后台播放QQ音乐等等
(3)BroadcastReceiver:手机里的“消息喇叭”,用于监听系统或者应用发出的全局事件的组件,比如网络状态的变化、充电状态的变化等等
(4)ContentProvider:应用间的“数据共享存储桥”,是管理跨应用访问的组件,通过URI来标识数据,比如说咱们的手机通讯录是不是可以被多个应用访问读取
我这里是从别的文章里复制下来的,后续我会逐一详细学习四大组件每个部分。
原文:https://blog.csdn.net/m0_73804764/article/details/146242341?fromshare=blogdetail&sharetype=blogdetail&sharerId=146242341&sharerefer=PC&sharesource=giaoho&sharefrom=from_link
Android六大布局
接下来进入Android 的入门基础知识,来了解Android中的布局.Android中有六大布局,其中分别是 RelativeLayout(相对布局),LinearLayout(线性布局),TableLayout(表格布局) ,FrameLayout(帧布局),ConstraintLayout(约束布局),GridLayout(网格布局) . 在实际的界面布局中我们最常用的是使用线性布局与相对布局结合使用,这个能达到较好的页面效果。
Android 六大布局的共用属性,在 Android 开发中,不同布局虽然功能和特性各异,但也存在一些共用的属性。以下他们的共用属性总结:
| 属性名称 | 属性说明 | 示例代码 |
|---|---|---|
android:id |
为布局或控件设置唯一标识符,用于在代码中引用。 | android:id="@+id/layout_main" |
android:layout_width |
定义布局或控件的宽度,可选值:match_parent(占满父容器)、wrap_content(包裹内容)或具体数值。 |
android:layout_width="match_parent" |
android:layout_height |
定义布局或控件的高度,可选值与宽度类似。 | android:layout_height="wrap_content" |
android:padding |
设置布局内边距(内容与边框的距离),可统一设置或分别设置各方向(paddingLeft、paddingTop等)。 |
android:padding="16dp" |
android:margin |
设置布局外边距(与父容器或其他控件的距离),可统一设置或分别设置各方向(marginLeft、marginTop等)。 |
android:margin="8dp" |
android:background |
设置布局的背景,可指定颜色、Drawable资源或选择器(Selector)。 | android:background="@color/colorPrimary" |
android:visibility |
控制布局或控件的可见性,可选值:visible(可见)、invisible(不可见但占位置)、gone(不可见且不占位置)。 |
android:visibility="visible" |
android:tag |
为布局或控件添加标签,用于存储额外信息,可在代码中通过getTag()获取。 |
android:tag="main_layout" |
android:clickable |
设置布局或控件是否可点击(配合点击事件使用)。 | android:clickable="true" |
android:focusable |
设置布局或控件是否可获取焦点(如编辑框需要获取焦点才能输入)。 | android:focusable="true" |
1. LinearLayout(线性布局)
线性布局是Android布局中比较常用的布局方式, 线性布局主要分为垂直线性布局和水平线性布局。通过< LinearLayout >标签中的 orientation属性设置垂直(vertical)或水平 (horizontal)
| 属性名称 | 描述 |
|---|---|
android:orientation |
指定子视图排列方向:horizontal(水平)或vertical(垂直)。 |
android:gravity |
控制子视图在布局中的对齐方式(如center、top、right等)。 |
android:layout_weight |
分配额外空间的权重值,常用于按比例划分空间(需配合0dp使用)。 |
android:divider |
设置子视图之间的分隔线(需配合showDividers使用)。 |
android:showDividers |
指定分隔线的显示位置:none、beginning、middle、end。 |
android:baselineAligned |
是否对齐子视图的基线(默认true)。 |
2. RelativeLayout(相对布局)
相对布局是以它包含的子控件之间的相对位置或者子类控件相对父容器的位置的方式排列
| 属性名称 | 描述 |
|---|---|
android:layout_above |
将视图置于指定 ID 视图的上方。 |
android:layout_below |
将视图置于指定 ID 视图的下方。 |
android:layout_toLeftOf |
将视图置于指定 ID 视图的左侧。 |
android:layout_toRightOf |
将视图置于指定 ID 视图的右侧。 |
android:layout_alignTop |
使视图的顶部与指定 ID 视图的顶部对齐。 |
android:layout_alignBottom |
使视图的底部与指定 ID 视图的底部对齐。 |
android:layout_alignParentTop |
使视图的顶部与父容器的顶部对齐。 |
android:layout_alignParentBottom |
使视图的底部与父容器的底部对齐。 |
android:layout_centerInParent |
使视图在父容器中居中。 |
android:layout_centerHorizontal |
使视图在父容器中水平居中。 |
android:layout_centerVertical |
使视图在父容器中垂直居中。 |
3. 表格布局(TableLayout )
表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象。
如果把控件直接放入则控件会充满一行, 如果想一行有多个控件的话就吧控件添加到 < Tablerow>< /TableRow>中管理
注:表格布局并不自带边框,边框需要设置TabLayout,TableRow,View,的边距,背景色来进行设置边框,如果显示不完全,可以在TabLayout外边包裹滚动布局,进行滚动
| 属性名称 | 描述 |
|---|---|
android:stretchColumns |
指定可拉伸的列索引(如0、*表示所有列)。 |
android:shrinkColumns |
指定可收缩的列索引。收缩到某一合适大小,不会超出屏幕。*表示所有列。 |
android:collapseColumns |
指定要隐藏的列索引:从0到n,隐藏两列可以0,1用逗号隔开 |
android:layout_span |
在 TableRow 中使用,指定单元格跨越的列数(类似 HTML 的colspan)让此按钮本行的某一列显示。 |
4.网格布局(GridLayout )
该布局是Android 4.0 后新增的一个布局,以网格的形式布局窗口控件
网格布局和其他布局不同,可以不为组件设置Layout_width和Layout_height属性
因为组件的宽高由几行几列决定了,当然,你也可以写个wrap_content
| 属性名称 | 描述 |
|---|---|
android:rowCount |
设置网格的行数,一行显示的条目数。 |
android:columnCount |
设置网格的列数,一列显示的条目数。 |
android:layout_row |
指定视图所在的行索引,从0开始。 |
android:layout_column |
指定视图所在的列索引,从0开始。 |
android:layout_rowSpan |
指定视图跨越的行数(默认 1)。 |
android:layout_columnSpan |
指定视图跨越的列数(默认 1)。 |
android:orientation |
指定排列方向:horizontal(先填充行,横向排列)或vertical(先填充列)。 |
5.帧布局(FrameLayout)
所有控件不能指定位置, 因为所有的控件都显示在一个地方, 一层叠加一层, 网页版的刮刮乐就是利用帧布局实现的
| 属性名称 | 描述 |
|---|---|
android:foreground |
设置前景 Drawable(始终显示在内容上方)。 |
android:foregroundGravity |
指定前景 Drawable 的对齐方式(如center、fill等)。 |
android:measureAllChildren |
是否测量所有子视图(包括GONE状态的视图,默认false)。 |
6.约束布局(ConstraintLayout)
| 属性名称 | 描述 |
|---|---|
app:layout_constraintLeft_toLeftOf |
将视图左侧约束到指定 ID 视图的左侧或父容器(parent)。 |
app:layout_constraintLeft_toRightOf |
将视图左侧约束到指定 ID 视图的右侧。 |
app:layout_constraintRight_toLeftOf |
将视图右侧约束到指定 ID 视图的左侧。 |
app:layout_constraintRight_toRightOf |
将视图右侧约束到指定 ID 视图的右侧或父容器。 |
app:layout_constraintTop_toTopOf |
将视图顶部约束到指定 ID 视图的顶部或父容器。 |
app:layout_constraintTop_toBottomOf |
将视图顶部约束到指定 ID 视图的底部。 |
app:layout_constraintBottom_toTopOf |
将视图底部约束到指定 ID 视图的顶部。 |
app:layout_constraintBottom_toBottomOf |
将视图底部约束到指定 ID 视图的底部或父容器。 |
app:layout_constraintDimensionRatio |
设置视图宽高比(如W:H=16:9)。 |
app:layout_constraintHorizontal_bias |
水平方向偏移量(0.0 表示左对齐,1.0 表示右对齐)。 |
app:layout_constraintVertical_bias |
垂直方向偏移量(0.0 表示顶部对齐,1.0 表示底部对齐)。 |
app:layout_constraintWidth_percent |
设置视图宽度为父容器宽度的百分比(0.0-1.0)。 |
app:layout_constraintHeight_percent |
设置视图高度为父容器高度的百分比(0.0-1.0)。 |
7.绝对布局(AbsoluteLayout)淘汰
理论上该布局可以实现任何样式的排列, 但是由于手机屏幕尺寸差别较大,在屏幕 通过android:layout_x和android:layout_y指定子视图的绝对坐标(像素值)。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)