android之android:layout_weight的使用

android:layout_weight是线性布局(Linearlayout)中,表示控件的比重,权重的一个属性。这个属性,我们可以用来表示一个在一个线性布局中,几个控件按比例显示,这当然也包括各个控件平均显示。这个属性其实,对界面UI适配是一个非常有用的。

Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。这样android:layout_weight就可以理解为控件的长度比。

下面的这个例子,我们使用android:layout_weight来使三个图片平均显示和使二张图片按1:2的比例来显示的例子。

1.效果图:

2.布局文件:

2.1第一行图片的布局文件(三个图片平均分布):

	<LinearLayout
        android:id="@+id/contact_detail_btn_area"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="65dp">

        <LinearLayout
            android:id="@+id/contact_share_btn"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center" >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/share" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="share" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#f7f7f7">
            <View
                android:layout_width="1dip"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#d1d1d1"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/contact_edit_btn"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/edit" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="edit" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#f7f7f7" >
            <View
                android:layout_width="1dip"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#d1d1d1" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/contact_menu_btn"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center" >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/menu"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="menu"/>
        </LinearLayout>
    </LinearLayout>

2.2 第二行图片的布局文件(二个图片按1:2分布):

	<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="65dp">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/share" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="share" />
        </LinearLayout>
       <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#f7f7f7" >
            <View
                android:layout_width="1dip"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#d1d1d1" />
        </LinearLayout>
       <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:background="#f7f7f7"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/edit" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="edit" />
        </LinearLayout>
</LinearLayout> 

2.3:整个布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

	<LinearLayout
        android:id="@+id/contact_detail_btn_area"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="65dp">

        <LinearLayout
            android:id="@+id/contact_share_btn"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center" >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/share" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="share" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#f7f7f7">
            <View
                android:layout_width="1dip"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#d1d1d1"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/contact_edit_btn"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/edit" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="edit" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#f7f7f7" >
            <View
                android:layout_width="1dip"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#d1d1d1" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/contact_menu_btn"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center" >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/menu"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="menu"/>
        </LinearLayout>
    </LinearLayout>

	<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="65dp">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#f7f7f7"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/share" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="share" />
        </LinearLayout>
       <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#f7f7f7" >
            <View
                android:layout_width="1dip"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="#d1d1d1" />
        </LinearLayout>
       <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:background="#f7f7f7"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:layout_marginTop="10dp"
                android:background="@drawable/edit" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="edit" />
        </LinearLayout>
</LinearLayout>        

</LinearLayout>
时间: 2024-10-13 00:22:49

android之android:layout_weight的使用的相关文章

[Android]布局之layout_weight

在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用.Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性. 1.当控件的属性android:layout_width="fill_parent"或者"match_parent"时,布局文件如下: Xml代码 <?xml vers

安卓开发技巧一:深入理解Android布局中Layout_weight的属性

今天开始将要为大家介绍一些安卓开发过程将要用到的一些技巧,这些技巧全部来自网络搜集,或者自己在企业做项目的时候总结出来的,利用这些技巧将会对我们开发带来非常方便的便捷性. 先来记录一下这一段时间的技巧目录,方便大家以后方便查阅(大概有不到三十种的技巧总结,大概每周分享两个技巧,笔者将尽可能写的详细,以及提供实例源码): 安卓开发技巧一:深入理解Android布局中Layout_weight的属性 安卓开发技巧二:自定义日志工具类 安卓开发技巧三:Activity的启动模式 安卓开发技巧四:分享一

Android 布局之layout_weight解析

Android 布局之layout_weight解析 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_paren

Android高级-Android操作SQL数据管理,增删改查

已经学了好几天SQL了,昨天刚接触到Android操作SQL数据库,晚上老师留了一个作业,效果图如下 分别是,主界面,和修改,添加,以及删除界面 首先我们先来实现布局 MainActivity.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

Android培训Android课堂重点内容汇总

Android培训Android课堂重点内容汇总 一.Android Introduction Android 是一个允许你在java环境下为手机设备开发应用和游戏的提供丰富应用框架. 二.四大组件 1.Activity (1)定义:提供给用户一个与app进行交互的UI界面的组件 (2)创建 //步骤 (1 继承Activity或者其子类 (2 必须实现OnCreate() (3 OnCreate()实现SetContentView(),为这个Activity提供的窗口,添加layout(布局)

[Android实例] Android之断点续传下载

在我们做开发的时候经常遇到的就是下载了,现在下载的方法有很多很多,那么怎么做到断点续传下载呢!很多人都头疼这个问题,如果我们没有很好的逻辑真不是很容易解决啊.我参考了一下前辈们的资料了整理了一个项目,能实现多个文件的同时下载.断点续传下载,顾名思义,那就是我们在一次下载未结束时,退出下载,第二次下载时会接着第一次下载的进度继续下载.那么怎么记录第一次下载的数据呢,这里肯定就要用到数据库了.下面就是我创建数据库的一个SQLiteOpenHelper类.用来首次运行时创建数据库.DBHelper.j

Android 自定义android控件EditText边框背景

在我们进行Android应用界面设计和时候,为了界面风格的统一,我们需要对一些控件进行自定义.比如我们的应用采用的蓝色风格,但是 android的EditText控制获得焦点后显示的却是黄色的边框背景.那么如何让EditText在获得焦点的时候显示的是我们自定义的蓝色的背景 呢? 首先准备两张图片,一张是EditText获得焦点后的边框背景,一张是没有获得焦点时的背景,注意制作成9.png样式的图片,然后在drawable里添加一个selector_edittext_bg.xml文件,内容如下:

android权限--android开发中的权限及含义(上)

android权限--android开发中的权限及含义(上) android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.pe

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,On SetTitl

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,OnSetTitleMatchMode,2 ; 激活窗口并单击按钮IfWinExistActiveControlClick

【Android】Android Camera原始帧格式转换 —— 获取Camera图像(一)

 概述: 做过Android Camera图像采集和处理的朋友们应该都知道,Android手机相机采集的原始帧(RawFrame)默认是横屏格式的,而官方API有没有提供一个设置Camera采集图像的方向的方法,导致我们拿到原始帧后还需要再次对其进行转换为对应需求的数据,例如YUV的格式,图像的方向等(旋转多少度合适),下面我就粗略的介绍一下大致的流程,理解浅薄,大神请勿喷. 注意:当前还都是基于API<21的内容,如果压根不用android.hardware.Camera的话可能有区别,还没研