android百分比布局

转载至http://blog.csdn.net/zhangphil


Android百分比布局:PercentRelativeLayout

在Android studio的build.gradle中添加

compile 'com.android.support:percent:22.2.0'
如图:
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.android.support:percent:22.2.0'
}

本文以PercentRelativeLayout为例加以说明。
PercentRelativeLayout在RelativeLayout增加了一些针对百分比布局的必要属性如:
layout_widthPercent 、 layout_heightPercent 
layout_marginPercent  
layout_marginLeftPercent 
layout_marginTopPercent  
layout_marginRightPercent 
layout_marginBottomPercent  
layout_marginStartPercent 
layout_marginEndPercent

其中比较重要的是layout_widthPercent 和layout_heightPercent。顾名思义,该属性将控制子view在父布局中的宽高百分占比。
同样道理,又如layout_marginLeftPercent定义该子view距离父布局左边的百分占比。
写一个布局文件跑起来看看效果就一目了然:

[html]  view plain  copy
  1. <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent" >  
  5.   
  6.     <TextView  
  7.         android:id="@+id/text1"  
  8.         android:layout_height="50dip"  
  9.         android:layout_alignParentTop="true"  
  10.         app:layout_widthPercent="25%"  
  11.         android:background="#ff0000"  
  12.         android:text="1,25%" />  
  13.   
  14.     <TextView  
  15.         android:id="@+id/text2"  
  16.         android:layout_height="50dip"  
  17.         android:layout_below="@+id/text1"  
  18.         android:layout_marginTop="1dip"  
  19.         app:layout_widthPercent="50%"  
  20.         android:background="#ff0000"  
  21.         android:text="2,50%" />  
  22.   
  23.     <TextView  
  24.         android:id="@+id/text3"  
  25.         android:layout_height="50dip"  
  26.         android:layout_below="@+id/text2"  
  27.         android:layout_marginTop="1dip"  
  28.         app:layout_widthPercent="75%"  
  29.         android:background="#ff0000"  
  30.         android:text="3,75%" />  
  31.   
  32.     <TextView  
  33.         android:id="@+id/text4"  
  34.         android:layout_height="50dip"  
  35.         android:layout_below="@+id/text3"  
  36.         android:layout_marginTop="1dip"  
  37.         app:layout_marginLeftPercent="25%"  
  38.         app:layout_widthPercent="50%"  
  39.         android:background="#ff0000"  
  40.         android:text="4,50%" />  
  41.   
  42.     <TextView  
  43.         android:id="@+id/text5"  
  44.         android:layout_height="50dip"  
  45.         android:layout_below="@+id/text4"  
  46.         android:layout_marginTop="1dip"  
  47.         app:layout_marginLeftPercent="50%"  
  48.         app:layout_widthPercent="50%"  
  49.         android:background="#ff0000"  
  50.         android:text="5,50%" />  
  51.   
  52.     <TextView  
  53.         android:id="@+id/text6"  
  54.         android:layout_height="50dip"  
  55.         android:layout_below="@+id/text5"  
  56.         android:layout_marginTop="1dip"  
  57.         app:layout_marginLeftPercent="25%"  
  58.         app:layout_widthPercent="25%"  
  59.         android:background="#ff0000"  
  60.         android:text="6,25%" />  
  61.   
  62. </android.support.percent.PercentRelativeLayout>  


XML代码运行结果如图:


Android百分比布局:PercentFrameLayout

在之前一篇文章我写了Android的百分比占布局:PercentRelativeLayout。(《Android百分比布局:PercentRelativeLayout》文章链接地址:http://blog.csdn.net/zhangphil/article/details/49532493 )
Android新增的百分比占布局有两个PercentFrameLayout和PercentRelativeLayout。本篇介绍PercentFrameLayout。
同样,PercentFrameLayout也有和PercentRelativeLayout类似的以下一些属性:
layout_marginLeftPercent 
layout_marginTopPercent 
layout_marginRightPercent 
layout_marginBottomPercent 
layout_marginStartPercent 
layout_marginEndPercent 
layout_aspectRatio

使用方法和前一篇介绍的PercentRelativeLayout类似。在类层次结构上,PercentFrameLayout继承自FrameLayout。既然使用百分比占布局,其实在一定程度上可以不用再像以往那样指定view的宽高或者match_parent、wrap_content诸如此类。比如:

[html]  view plain  copy
  1. <android.support.percent.PercentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent" >  
  5.   
  6.     <TextView  
  7.         app:layout_heightPercent="90%"  
  8.         app:layout_widthPercent="90%"  
  9.         android:background="#c62828" />  
  10.   
  11.     <TextView  
  12.         app:layout_heightPercent="80%"  
  13.         app:layout_widthPercent="80%"  
  14.         android:background="#e53935" />  
  15.   
  16.     <TextView  
  17.         app:layout_heightPercent="70%"  
  18.         app:layout_widthPercent="70%"  
  19.         android:background="#f44336" />  
  20.   
  21.     <TextView  
  22.         app:layout_heightPercent="60%"  
  23.         app:layout_widthPercent="60%"  
  24.         android:background="#ef5350" />  
  25.   
  26.     <TextView  
  27.         app:layout_heightPercent="50%"  
  28.         app:layout_widthPercent="50%"  
  29.         android:background="#e57373" />  
  30.   
  31. </android.support.percent.PercentFrameLayout>  


运行结果如图所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值