PercentFrameLayout(百分比布局)的基本使用
前面的3中布局,LinearLayout、RelativeLayout、FrameLayout都是从Android1.0中就开始支持了,一直沿用到现在,可以说是满足了绝大多数场景的界面设计需求。不过细心的你会发现,只有LinearLayout支持使用android:layout_weight属性来实现按比例指定控件大小的功能,其他两种布局都不支持比如说,如果想用RelativeLayout来实现两个按钮平分布局宽度的效果,则是比较困难的。
为此,Android引入了一种全新的布局方式来解决此问题-----百分比布局。在这种布局中,我们不再使用wrap_content、match_parent等方式来指定控件的大小,而是允许直接指定控件在布局中所占的百分比,这样的话就可以轻松实现平分布局甚至是任意比例分割布局效果了。
由于LinearLayout本身已经支持按比例指定控件的大小了,因此百分比布局属于新增布局,那么怎么才能做到让新增布局在所有Android版本上都能使用呢?为此,Android团队将百分比布局定义在了suppor库当中,我们只需要在项目的build.gradle中添加百分比布局库的依赖,就能保证百分比布局在Android所有系统版本上的兼容性了。
打开app/build.gradle文件,在dependencies闭包中添加以下内容:
implementation'com.android.support:percent:28.0.0'
点击右上方的Sync Now,然后gradle会开始进行同步,把我们新添加的百分比布局库引入到项目当中。
接下来修改activity_main.xml中的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentFrameLayout 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"><Buttonandroid:id="@+id/btn1"android:layout_gravity="left|top"android:text="btn1"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /><Buttonandroid:id="@+id/btn2"android:layout_gravity="right|top"android:text="btn2"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /><Buttonandroid:id="@+id/btn3"android:layout_gravity="left|bottom"android:text="btn3"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /><Buttonandroid:id="@+id/btn4"android:layout_gravity="right|bottom"android:text="btn4"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /></android.support.percent.PercentFrameLayout>
效果图:
最外层我们使用了PercentFrameLayout,由于百分比布局并不是内置在系统SDK当中的,所以需要把完整的包路径写出来。然后还必须定义一个app的命名空间,这样才能使用百分比布局的自定义属性。
在PercentFrameLayout中我们定义了4个按钮,
使用app:layout_widthPercent属性将各个按钮的宽度指定为布局的50%,
使用app:layout_heightPercent属性将各个按钮的高度指定为布局的50%。
这里之所以可以使用app前缀的属性就是因为刚才定义了app的命名空间,当然我们一直能使用android前缀的属性也是同样的道理。
不过PercentFrameLayout还是会继承FrameLayout的特性,即所有的控件默认都是摆放在布局的左上角。那么,为了让这4个按钮不会重叠,这里还是借助了layout_gravity属性来分别将4个按钮放置在布局的左上,右上,左下,右下4个位置。
PercentFrameLayout(百分比布局)的基本使用相关推荐
- android如何看百分比版本,【JAVA】Android百分比布局
开发我人生第一个app的时候,我在想有没有这么一种布局能适应任何手机的分辨率,今天让我们一起来看看Android 百分比布局PercentRelativeLayout. 使用这种布局首先我们要在gra ...
- Android 布局开发之百分比布局、弹性布局
1.百分比布局 很简单,超级简单.引用之后就可以使用了. compile 'com.android.support:percent:23+' git地址: https://github.com/Jul ...
- Android百分比布局初探
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/48802909 标题:Android百分比布局 ...
- android百分比扩展枯,Android 增强版百分比布局库 为了适配而扩展
一 概述 上周一我们发布了Android 百分比布局库(percent-support-lib) 解析与扩展中对percent-support这个库进行了解析和添加了PercentLinearLayo ...
- Android 第七课 4种基本布局之FrameLayout和百分比布局
FrameLayout(帧布局),她没有方便的定位方式,所有的控件都会默认摆放在布局的左上角. 修改activity_main.xml中的代码,如下: <?xml version="1 ...
- android百分比布局失效,Android 百分比布局库【原创】
为了解决android手机适配问题,我们经常想如果可以按照百分比的方式进行界面布局,这样适配各种屏幕就简单多了吧!现在谷歌正式提供百分比布局支持库(android-support-percent-li ...
- Android百分比布局支持和垂直TextView
In this tutorial, we'll discuss and implement Android Percent Layout Support Library. Furthermore, w ...
- android 5.0+原生质设计,cardview、Recyclerview、百分比布局PercentRelativeLayout简单使用
Android 5.0出来已经快一年时间了,全新的系统采用Material Design设计,耳目一新的感觉,当然新系统的出来也增加了新的API为开发带来便捷,现在就说说新出的几个控件,cardvie ...
- Android 增强版百分比布局库 为了适配而扩展
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46767825: 本文出自:[张鸿洋的博客] 一 概述 上周一我们发布了Andr ...
最新文章
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 95. 费解的开关:位运算、枚举、递推
- 用vim看代码的常用指令
- ajax定时器怎么写,js定时器怎么写?就是在特定时间执行某段程序
- 开发指南专题十一:JEECG微云快速开发平台--基础用户权限
- SpringBoot2 整合OAuth2组件,模拟第三方授权访问
- B - ACM小组的古怪象棋 【地图型BFS+特殊方向】
- 开源包管理器Homebrew被曝 RCE,影响 macOS 和 Linux 系统
- linux云服务器,Tomcat服务器常见 The value for the useBean class attribute is invalid 错误
- Python一步实现静态图片动态化
- Android集成华为、小米、OPPO、VIVO、极光推送
- (半)自动批量添加QQ好友
- php自动计算增长率,Oracle表空间增长率监控脚本
- (rear + maxSize - front) % maxSize 公式的理解(文图详解,手把手)
- Unity——RectTransform详解
- 淘宝如何打造承载亿级流量的首页?
- 更改aspx页面编码格式
- 歌曲:最初的梦想 原唱:范玮琪
- c语言动态分配输出学生成绩,C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)...
- 敏感性、特异度、α、β、阳性预测值(PPV)、阴性预测值(NPV)等指标及置信区间计算(附R语言代码)
- frdora10_a8_linux,8楼 【A8】 linux系统的不刻盘的安装 一:.pdf