Android 控件在布局中按比例放置[转]

转自:http://netsky1990.blog.51cto.com/2220666/997452

 

    在Android开发中常用到线性布局LinearLayout对界面进行具体的创建,其中android:layout_weight这个属性很重要,它可以按照程序员的控制,根据终端屏幕的大小,以相应的比例显示控件的大小,而不会把控件的大小写死,造成无法根据屏幕来自动调整控件本身的大小。

 

需要注意以下几点:

一、LinearLayout内的控件的layout_width设置为"wrap_content"

    例:

             android:layout_height="fill_parent"

             android:layout_weight="1"

             android:text="1"/>

       

             android:layout_height="fill_parent"

             android:layout_weight="2"

             android:text="1"/>

       

             android:layout_height="fill_parent"

             android:layout_weight="3"

             android:text="1"/>

    这个时候3个TextView是按照1:2:3的比例进行显示的,但是如果TextView内的文本长度过长,则会改变效果,控件并没有按照比例显示大小,比如:

   

             android:layout_height="fill_parent"

             android:layout_weight="1"

             android:text="1111111111111111111111111111111111111111111"/>

       

             android:layout_height="fill_parent"

             android:layout_weight="2"

             android:text="1"/>

       

             android:layout_height="fill_parent"

             android:layout_weight="3"

             android:text="1"/>

    办法是设置android:layout_width="wrap_content"为android:layout_width="0dp"。这样控件里的内容并不会影响控件的大小。

二、LinearLayout内的控件的layout_width设置为"fill_parent"

    例:fill_parent"

             android:layout_height="fill_parent"

             android:layout_weight="1"

             android:text="1"/>

        fill_parent"

             android:layout_height="fill_parent"

             android:layout_weight="2"

             android:text="1"/>

    这个时候整个宽度平分为3块,第一个TextView占了两块,也就是weight值越小的比例越大

    当有三个控件时,问题就来了:

        fill_parent"

             android:layout_height="fill_parent"

             android:layout_weight="1"

             android:text="1"/>

        fill_parent"

             android:layout_height="fill_parent"

             android:layout_weight="2"

             android:text="2"/>

        fill_parent"

             android:layout_height="fill_parent"

             android:layout_weight="3"

             android:text="3"/>

    此时第三个TextView没有显示,把上面三个TextView对应的weight分别改为2,3,4,又可以看到第三个控件。

    对于这种情况还不知道问题的原因是什么。

    (上面的图片好像加载有问题,估计是网络原因吧,等网络好的时候在补,想看效果的可以去我上面转的那个网址里看,或者自己试试)

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/p/3555125.html

时间: 2024-09-27 00:58:50

Android 控件在布局中按比例放置[转]的相关文章

Android控件属性大全(转)

http://blog.csdn.net/pku_android/article/details/7365685 LinearLayout         线性布局        子元素任意  TableLayout          表格布局        子元素为<TableRow>其中可放各种控件  RelativeLayout       相对布局        子元素任意  AbsoluteLayout      绝对布局       子元素任意     公共控件属性   andro

Android中一个在MainActivity中的控件在OneActivity中怎样获取到

问题描述 Android中一个在MainActivity中的控件在OneActivity中怎样获取到 每点击一次添加按钮 购物车的TextView 更新一次 解决方案 Android-获取view中的一个控件 解决方案二: 有很多种方式,如果单纯获取控件可以通过Layoutinflater获取view,然后获取控件

android 控件设置背景以后再代码中改变的时候对不其

android 控件设置背景以后再代码中改变的时候对不齐,我在xml文件中给Button设置了背景,但是在代码中判断了以后我就改变了背景的颜色,但是他的位置还是以前背景的那么大位置,上边显示的文字跟上边的按钮对不 最后调试了半天,只要把设置背景的代码都写带代码中ok

Android控件之Gallery用法实例分析_Android

本文实例讲述了Android控件之Gallery用法.分享给大家供大家参考.具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Gallery组件指定了10张图像,那么当Gallery组件显示到第10张时,就不会再继续显示了.这虽然在大多数时候没有什么关系,但在某些情况下,我们希望图像显示到最后一张时再重第1张开始显示,也就是循环显示.要实现这种风格的Gallery组件,就需要对Gallery的Adapter对象进行

Android控件之Gallery用法实例分析

本文实例讲述了Android控件之Gallery用法.分享给大家供大家参考.具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Gallery组件指定了10张图像,那么当Gallery组件显示到第10张时,就不会再继续显示了.这虽然在大多数时候没有什么关系,但在某些情况下,我们希望图像显示到最后一张时再重第1张开始显示,也就是循环显示.要实现这种风格的Gallery组件,就需要对Gallery的Adapter对象进行

Android群英传笔记——第三章:Android控件架构与自定义控件讲解

Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基础的,可以先看下我之前写的几篇基础的View博客 Android绘图机制(一)--自定义View的基础属性和方法 Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 Android绘图机制(三)--自定义View的三种实现方式以及实战

设计-Android控件如何根据屏幕大小自适应?

问题描述 Android控件如何根据屏幕大小自适应? 我想设计出这种登陆界面,后面的牌牌是一个背景图片,但是在不同大小的屏幕下,几个EditText控件不能正好在牌字上.该如何使这几个控件始终在牌子上呢? 解决方案 建议初期就是用相对布局就很好了 也就是 RelativeLayout布局.可以自己调整位置在预览里面! 解决方案二: 使用相对布局,RelativeLayout布局 解决方案三: http://yixiong89921.blog.163.com/blog/static/1325377

背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid

原文:背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid [源码下载] 背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid 作者:webabcd 介绍背水一战 Windows 10 之 控件(布局类) Panel Canvas RelativePanel StackPanel Grid

Android控件系列之CheckBox使用介绍_Android

学习目的: 1.掌握在Android中如何建立CheckBox 2.掌握CheckBox的常用属性 3.掌握CheckBox选中状态变换的事件(监听器) CheckBox简介: CheckBox和Button一样,也是一种古老的控件,它的优点在于,不用用户去填写具体的信息,只需轻轻点击,缺点在于只有"是"和"否"两种情况,但我们往往利用它的这个特性,来获取用户的一些信息. 如一个身份表单中,常常让用户填写"是否已经结婚",显然让用户去填写&quo