Android应用开发(1)---Android五大UI布局的特有属性
Android五大UI布局的特有属性
Android五大UI布局
1. LinearLayout 线性布局
2. RelativeLayout 相对布局
3. FrameLayout 帧布局,空白布局
4. GridLayout 网格布局
5. AbsoluteLayout 绝对布局
- 一、线性布局LinearLayout
框架结构如下:
独有属性:
1、排列方向:vertical 竖向,horizontal 横向 如:android:orientation="vertical"
2、 设置当前控件在父控件范围内所处的位置(如居中,右下角等特殊位置) 如 :android:layout_gravity此属性存在一个bug:
(1)当orientation为vertical时,那么所有跟高度相关的属性值都会失效.(2)当orientation为Horizontal时,那么所有跟宽度相关的属性值都会失效.
原因:(以vertical方向为例)支持无限摆放子控件,顶多超出指定宽高区域范围的不显示,但是也不会报错。因此,依据此特点,无法确定线性的高具体是多少。bottom以及center_vertical等有关高度的属性都需要根据高度进行计算。 高度无法确定,因此,所有跟高度相关的属性值均会失效。(Horizontal方向原因与上面的原因类似)。
使用样例
使用效果如下:
- 由以上效果可知:LinearLayout为垂直方向(android:orientation=”vertical”)所以代码 android:layout_gravity=”bottom”并没有起到将文本放到底部的作用,即垂直方向上不起作用。而水平方向上却向左移动了40dp的距离
3、设置权重,即设置兄弟控件之间宽或高的比例关系。当使用此属性值,如果是给宽度设置比例关系,那么将layout_width的属性值设置为0dp或wrap_content。如果是给高度设置比例关系,那么layout_weight的属性值设置为0dp或wrap_content。
使用时注意:如果是horizontal方向的线性布局,那么使用weight属性控制宽度的比例关系,如果是vertical方向的线性布局,那么使用weight属性控制高度的比例关系.
android:weightSum 此属性只能写在Linearlayout标签中,用于设置比例关系几分之几中的分母可省略不写,如果不写的话,那么分母由所有layout_weight属性的和决定
使用样例:
使用效果:
由效果图可知两个文本框的比例在水平方向上为1:3
二、相对布局RelativeLayout
框架结构如下:
特点 :
1. 每一个控件默认位置是位于左上角
2. 当想要给控件设置位置时,此位置必然是参照父控件区域或者兄弟控件调整位置的
相对于父控件的属性:
以下所有属性的属性值设置的均为:true或者false写false与没写此属性效果相同控制居中的:
android:layout_centerInParent 水平,垂直同时居中
android:layout_centerHorizontal 水平居中
android:layout_centerVertical 垂直居中控制贴边的:
android:layout_alignParentLeft 让当前控件的左边缘紧贴父控件的左边缘
android:layout_alignParentTop 让当前控件的顶边缘紧贴父控件的顶边缘
android:layout_alignParentRight 让当前控件的右边缘紧贴父控件的右边缘
android:layout_alignParentBottom让当前控件的底边缘紧贴父控件的底边缘
三、帧布局 FrameLayout
特点:
1. 所有控件的默认位置都是左上角,想要控制控件的显示位置,只能用layout_gravity属性控制
2. 通常配合Fragment使用
四、绝对布局 AbsoluteLayout
- 绝对布局(目前此布局基本被废弃)
特点:
在设置控件的显示位置时,只需通过属性设置控件左上角的坐标点即可
五、网格布局GridLayout
框架结构如下:
网格布局 4.0以后出的, 4.0以前的网格布局使用TableLayout
特点:
1. 整体的页面会按要求分为n行n列的网格,可以将控件直接放置在指定的行和列中
2. 网格也可以实现跨行或跨列显示,如一个网格的高度可以直接占据两行的高度
3. 可以省略layout_width和layout_height属性
独有属性:
android:rowCount="4" 指定总行数
android:columnCount="4" 指定总列数指定控件位于网格的第几行第几列中android:layout_row="0"android:layout_column="0"android:layout_rowSpan="2" 将控件的高度拉伸为2行的高度android:layout_columnSpan="2" 将控件的宽度拉伸为2列的宽度注意: 以上两个拉伸的属性必须配合android:layout_gravity="fill"才能生效
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" android:rowCount="4"android:columnCount="4"><TextView
android:layout_width="50dp"android:layout_height="50dp"android:text="1"android:background="#ff0000"android:layout_row="0"android:layout_column="0"/><TextView
android:layout_width="50dp"android:layout_height="50dp"android:text="1"android:background="#ff0000"android:layout_row="0"android:layout_column="1"/><TextView
android:layout_width="50dp"android:layout_height="50dp"android:text="2"android:background="#00ff00"android:layout_row="1"android:layout_column="0"android:layout_columnSpan="2"android:layout_gravity="fill"/><TextView
android:layout_width="50dp"android:layout_height="wrap_content"android:text="3"android:background="#0000ff"android:layout_row="0"android:layout_column="2"android:layout_rowSpan="2"android:layout_gravity="fill"/>
</GridLayout>
效果如下:
Android应用开发(1)---Android五大UI布局的特有属性相关推荐
- android基础开发 书,Android 开发基础
(一)认识Android Studio Android Studio 是谷歌推出的一个Android集成开发工具,Android Studio 提供了集成的 Android 开发工具用于开发和调试. ...
- 【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作
文章目录 一.前置操作 ( 移植 FFMPEG ) 二.FFMPEG 混音命令 三.Android FFMPEG 混音源代码完整示例 四.博客源码 一.前置操作 ( 移植 FFMPEG ) 参考 [A ...
- 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )
文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...
- 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )
文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...
- 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )
文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...
- 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )
文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )
文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )
文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...
- 【Android 应用开发】Activity 任务亲和性 taskAffinity 设置 ( taskAffinity 属性 )
文章目录 I . 任务亲和性 ( taskAffinity ) 简介 II . 任务亲和性 ( taskAffinity ) 设置 III . 任务亲和性 ( taskAffinity ) 与 FLA ...
最新文章
- 工厂方法注入(静态和非静态)
- jQuery的JSONP
- matlab工具箱设置学习率_MATLAB金融工具箱:06:统计套利的机器学习2:特征工程和模型开发...
- *【POJ - 2796】 Feel Good (前缀和优化+单调栈维护)
- AI 时代下的海量业务智能监控实践
- 第一次加入博客那,鼓励一下自己先
- mysql 查询优化 ~ 善用profie利器
- 数学分析 导数的四则运算法则及多个函数的推广
- H5图像遮罩-遁地龙卷风
- 3dsMax批量设置可编辑样条线的视口渲染
- android 字体显示框架,资源样式 - 主题 - 《XUI - Android 原生 UI 框架》 - 书栈网 · BookStack...
- GitHub前50名的Objective-C动画相关库相关推荐,请自行研究
- 关于指针的面试题,指向字符串和字符数组的单指针,二级指针,三级指针的使用。
- 终面(hr)可能的问题及回答(Java岗--自用)
- MNE-Python | 开源生理信号分析神器(一)
- nginx代理ajax跨域请求
- 【Linux Centos6/7 Oracle11g数据库开启归档日志功能】
- 【十二】Python全栈之路--推导式_生成器
- 【博学谷学习记录】超强总结,用心分享| jQuery简介
- 【目标追踪】三帧差法原理及实现