Android百分比布局支持库介绍——com.android.support:percent
2015-08-17 10:43
666 查看
在此之前,相信大家都已经对Android API所提供的布局方式非常熟悉了。也许在接触Android的时候都有过这样的想法,如果可以按照百分比的方式进行界面布局,这样适配各种屏幕就简单多了吧!!以前的一个小梦想,现在终于得以实现,谷歌正式提供百分比布局支持库(percent-support-lib)。
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/e43aeeb7183231962c993e38abba5ec9.jpg)
获取支持库:
[align=left]使用Android studio在build.gradle添加以下信息就可以获取支持库,当然了,如果你没有下载到该支持库会提示你下载。[/align]
[AppleScript] 纯文本查看 复制代码
新的布局组件:
[align=left]在这个包里面有两个新的容器类[/align]
[align=left]1、PercentRelativeLayout[/align]
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/3ed6ea49bb30c18f648e728161d17ead.png)
[align=left]2、PercentFrameLayout[/align]
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/3c807c7dcda271c1d1e62f8d71606f6c.png)
[align=left]在此看来,这两个类很显然是继承自 FrameLayout 和 RelativeLayout 两个容器类。[/align]
新的属性设置:
[align=left]新的容器有了一些设置百分比的属性,下面我们来了解一下:[/align]
layout_widthPercent
[align=left]设置控件宽度为父容器的宽的百分比[/align]
layout_heightPercent
[align=left]设置控件高度为父容器的高的百分比[/align]
layout_marginPercent
layout_marginLeftPercent
[align=left]设置控件与左边控件的距离为父容器的宽度的百分比[/align]
layout_marginTopPercent
[align=left]设置控件与上方控件的距离为父容器的高度的百分比[/align]
layout_marginRightPercent
[align=left]设置控件与右边控件的距离为父容器的宽度的百分比[/align]
layout_marginBottomPercent
[align=left]设置控件与下方控件的距离为父容器的高度的百分比[/align]
layout_marginStartPercent
[align=left]与上面的说明类似[/align]
layout_marginEndPercent
[align=left]与上面的说明类似[/align]
[align=left]从命名的方式我们可以知道,原来用某些具体单位(如dp)的设置现在都可以用百分比的方式进行设置了,例如设置控件的宽度layout_width原来我们是这样玩的android:layout_width="match_parent"现在用了百分比的属性之后呢,可以这样玩了app:layout_widthPercent="50%",这里的百分比是相对于父容器而言的。[/align]
使用介绍:
[align=left]官方文档地址:https://juliengenoud.github.io/android-percent-support-lib-sample/[/align]
[align=left]在布局的xml文件需要添加下面这行来声明[/align]
[XML] 纯文本查看 复制代码
[align=left]官方示例代码:[/align]
[XML] 纯文本查看 复制代码
[align=left]上面是官方文档的使用示例代码,但是实际上使用的时候如果没设置控件的宽高是会报错的。[/align]
[align=left]实验的布局代码:[/align]
[XML] 纯文本查看 复制代码
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/1772ed95dc30180ff23a913b8d3848a7.png)
[align=center]布局图1[/align]
[align=left]下面我对百分比布局的属性进行了一些小实验,来验证我的几个问题:[/align]
1、layout_marginTopPercent这种类型的参数具体的意义是什么?
[align=left]答:中间的蓝色view设置了我们疑惑的属性[/align]
[XML] 纯文本查看 复制代码
[align=left]然后我们在看看实现的效果,请看布局图1。[/align]
[align=left]再将layout_marginLeftPercent这类型的属性跟以前我们熟悉的layout_marginLeft类型属性对比可知,layout_marginLeftPercent属性是控件距离左边控件的距离为父类容器的宽度的百分比,其余属性类似。(其实这里不能证明是相对于父容器还是相对于屏幕而言,我们在下面进行证明)[/align]
2、控件设置的百分比是相对于屏幕还是相对于父容器而言呢?
[align=left]答:从上面的实验代码我们基本了解了各种属性的使用,但是不禁疑惑百分比这个是相对父容器而言的吗?也许自然我们就会想到应该是相对于父容器,但是不在实践中证明始终都是不放心的。实践是证明真理的唯一标准!![/align]
[align=left]好的,其实要证明也很容易。下面我们对容器类的宽度和高度分别进行修改,然后看看显示的情况。[/align]
[align=left]1)修改高度为定值300dp[/align]
[XML] 纯文本查看 复制代码
[align=left]然后我们看看显示的情况[/align]
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/84ae4e92cc16b98168b1864d2e1bef0e.png)
[align=left]2)修改宽度为200dp[/align]
[XML] 纯文本查看 复制代码
[align=left]再看看效果[/align]
<ignore_js_op>
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/e43aeeb7183231962c993e38abba5ec9.jpg)
获取支持库:
[align=left]使用Android studio在build.gradle添加以下信息就可以获取支持库,当然了,如果你没有下载到该支持库会提示你下载。[/align]
[AppleScript] 纯文本查看 复制代码
新的布局组件:
[align=left]在这个包里面有两个新的容器类[/align]
[align=left]1、PercentRelativeLayout[/align]
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/3ed6ea49bb30c18f648e728161d17ead.png)
[align=left]2、PercentFrameLayout[/align]
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/3c807c7dcda271c1d1e62f8d71606f6c.png)
[align=left]在此看来,这两个类很显然是继承自 FrameLayout 和 RelativeLayout 两个容器类。[/align]
新的属性设置:
[align=left]新的容器有了一些设置百分比的属性,下面我们来了解一下:[/align]
layout_widthPercent
[align=left]设置控件宽度为父容器的宽的百分比[/align]
layout_heightPercent
[align=left]设置控件高度为父容器的高的百分比[/align]
layout_marginPercent
layout_marginLeftPercent
[align=left]设置控件与左边控件的距离为父容器的宽度的百分比[/align]
layout_marginTopPercent
[align=left]设置控件与上方控件的距离为父容器的高度的百分比[/align]
layout_marginRightPercent
[align=left]设置控件与右边控件的距离为父容器的宽度的百分比[/align]
layout_marginBottomPercent
[align=left]设置控件与下方控件的距离为父容器的高度的百分比[/align]
layout_marginStartPercent
[align=left]与上面的说明类似[/align]
layout_marginEndPercent
[align=left]与上面的说明类似[/align]
[align=left]从命名的方式我们可以知道,原来用某些具体单位(如dp)的设置现在都可以用百分比的方式进行设置了,例如设置控件的宽度layout_width原来我们是这样玩的android:layout_width="match_parent"现在用了百分比的属性之后呢,可以这样玩了app:layout_widthPercent="50%",这里的百分比是相对于父容器而言的。[/align]
使用介绍:
[align=left]官方文档地址:https://juliengenoud.github.io/android-percent-support-lib-sample/[/align]
[align=left]在布局的xml文件需要添加下面这行来声明[/align]
[XML] 纯文本查看 复制代码
[XML] 纯文本查看 复制代码
[align=left]实验的布局代码:[/align]
[XML] 纯文本查看 复制代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/1772ed95dc30180ff23a913b8d3848a7.png)
[align=center]布局图1[/align]
[align=left]下面我对百分比布局的属性进行了一些小实验,来验证我的几个问题:[/align]
1、layout_marginTopPercent这种类型的参数具体的意义是什么?
[align=left]答:中间的蓝色view设置了我们疑惑的属性[/align]
[XML] 纯文本查看 复制代码
[align=left]再将layout_marginLeftPercent这类型的属性跟以前我们熟悉的layout_marginLeft类型属性对比可知,layout_marginLeftPercent属性是控件距离左边控件的距离为父类容器的宽度的百分比,其余属性类似。(其实这里不能证明是相对于父容器还是相对于屏幕而言,我们在下面进行证明)[/align]
2、控件设置的百分比是相对于屏幕还是相对于父容器而言呢?
[align=left]答:从上面的实验代码我们基本了解了各种属性的使用,但是不禁疑惑百分比这个是相对父容器而言的吗?也许自然我们就会想到应该是相对于父容器,但是不在实践中证明始终都是不放心的。实践是证明真理的唯一标准!![/align]
[align=left]好的,其实要证明也很容易。下面我们对容器类的宽度和高度分别进行修改,然后看看显示的情况。[/align]
[align=left]1)修改高度为定值300dp[/align]
[XML] 纯文本查看 复制代码
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/84ae4e92cc16b98168b1864d2e1bef0e.png)
[align=left]2)修改宽度为200dp[/align]
[XML] 纯文本查看 复制代码
<ignore_js_op>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201508/9b375306addc27392cadfe8b1f27f5bd.png)
相关文章推荐
- 问题; No label views point to this text field with an android:labelFor="@+id/@+id/editTextNumber1" attribute
- Android高仿网易云音乐播放界面
- Android应用自动更新功能的实现
- Android引导界面设计之ParallaxViewPager视差效果
- Android monitor the plug/unplug of USB
- Android 禁止横竖屏切换,onConfigurationChanged的作用
- Android的CPP代码都加了namespace android
- ArcGIS Runtime SDK for Android 各版本下载地址
- Android开发常见问题
- phonegap(cordova) 入门 2----使用Crosswalk 统一android 下 cordova运行的环境
- Android中为TextView中的部分文字设置颜色和点击事件
- Android性能优化典范(三)
- Android中多个Actvity之间传值实现
- 学习笔记001之[Android开发视频教学].01_06_Android当中的常见控件
- Android MD5加密算法
- Android 自定义圆形进度条
- Android系统-基于Android2.3.5系统:JNI与HAL实例解析[一]
- Linerlayout(线性布局)
- Android 锁屏 相关
- Android textview 不使用ScrollView也可滚动的方法