Android四大组件和六大布局

Android四大组件和六大布局

文章目录

  • Android四大组件和六大布局
    • Android四大组件
    • Android六大布局
        • 1. LinearLayout(线性布局)
        • 2. RelativeLayout(相对布局)
        • 3. 表格布局(TableLayout )
        • 4.网格布局(GridLayout )
        • 5.帧布局(FrameLayout)
        • 6.约束布局(**ConstraintLayout**)
        • 7.绝对布局(AbsoluteLayout)淘汰

Android四大组件

在安卓开发中,有四个核心组件共同支撑着APP,他们分别是Activity(活动),Service(服务),BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。
Android四大组件和六大布局_第1张图片

(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 设置布局内边距(内容与边框的距离),可统一设置或分别设置各方向(paddingLeftpaddingTop等)。 android:padding="16dp"
android:margin 设置布局外边距(与父容器或其他控件的距离),可统一设置或分别设置各方向(marginLeftmarginTop等)。 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 控制子视图在布局中的对齐方式(如centertopright等)。
android:layout_weight 分配额外空间的权重值,常用于按比例划分空间(需配合0dp使用)。
android:divider 设置子视图之间的分隔线(需配合showDividers使用)。
android:showDividers 指定分隔线的显示位置:nonebeginningmiddleend
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 的对齐方式(如centerfill等)。
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_xandroid:layout_y指定子视图的绝对坐标(像素值)。

你可能感兴趣的:(安卓开发学习,android,安卓)