Android程序fill_parent比例详解:

相信大家在刚开始学习android程序设计时,会有点搞不明白“match_parent”与“fill_parent”之间的比例问题;在此做一个实例大家就明白了!
编译如下代码:

 1     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:id="@+id/Line"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="horizontal"
 7     >
 8    <LinearLayout    
 9         android:layout_width="fill_parent"    
10         android:layout_height="fill_parent"    
11         android:background="#00ff00"     
12         android:layout_weight="1"/>    
13        
14         
15     <LinearLayout    
16         android:layout_width="fill_parent"    
17         android:layout_height="fill_parent"    
18         android:background="#ff0000"     
19         android:layout_weight="2"/> 
20     
21     <LinearLayout    
22         android:layout_width="fill_parent"    
23         android:layout_height="fill_parent"    
24         android:background="#0000ff"     
25         android:layout_weight="3"/> 
26         
27 </LinearLayout>

运行结果如下:

   这个时候就会有疑问了,怎么会这样,这比例是2:1吧,那么three去哪了?代码里面明明有 three的啊,还设置了3的,而1和2的比例也不对耶,1:2:3却变成了2:1:0,怎么会这样呢? 答:这里其实没那么简单的,还是需要我们计算的,网上给出的算法有几种,这里就给出笔者 觉得比较容易理解的一种: step 1:个个都是fill_parent,但是屏幕只有一个啦,那么1 - 3 = - 2 fill_parent step 2:依次比例是1/6,2/6,3/6 step 3:先到先得,先分给one,计算: 1 - 2 * (1/6) = 2/3 fill_parent 接着到two,计算: 1 - 2 * (2/6) = 1/3 fill_parent 最后到three,计算 1 - 2 * (3/6) = 0 fill_parent step 4:所以最后的结果是:one占了两份,two占了一份,three什么都木有 以上就是为什么three没有出现的原因了。

转载于:https://www.cnblogs.com/kblin/p/7784358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值