在Android开发中线性布局的权重问题。

作者&投稿:虫峰 (若有异议请与网页底部的电邮联系)
Android布局权重是怎样的~

1. 分配规则

【最后控件的宽度 = 控件本身宽度 + 权重比例分配宽度 】
2. 计算步骤

第一步 【计算剩余空间值】:将屏幕宽度(或高度)减去该水平(或竖直)排列之间所有控件的宽度(或高度),得出剩余空间值。

第二步 【权重比例分配剩余空间值】:根据你所设置的权重值,按照比例分配给控件(剩余空间值为负数也照样分配)。
3. 套用公式
例:如水平方向上的线性布局LinearLayout控件L中,包含两个水平占用空间的控件A,B。
L控件:L控件宽度layout_width = width_l A控件:a控件宽度layout_width = width_a a控件权重layout_weight = weight_a
B控件:b控件宽度layout_width = width_b b控件权重layout_weight = weight_b

L中子控件最终占用宽度 = 原有宽度(width_a)+剩余空间分配量A所占宽度 = width_a + (width_l-width_a-width_b)*weight_a/(weight_a+weight_b)
B所占宽度 = width_b + (width_l-width_a-width_b)*weight_b/(weight_a+weight_b)

Android在xml文件中可使用include包含其他定义好的布局,
可以将多处用到的布局单独出来,然后用include包含进来



下面是一个简单的示例,两个xml文件:

main.xml文件:
[html]

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

<include
android:id="@+id/main1"
layout="@layout/sublayout" />

<include
android:id="@+id/main2"
layout="@layout/sublayout" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Start Another Activity " />






sublayout.xml文件:

[html]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#505050"
android:orientation="vertical" >

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="SubLayout" />

<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" A Button " />

每个按钮都放在各自独立的布局里面。布局权重,按钮wrap_content就可以了。按钮的对齐方式可以在各自所处的布局设置

layout_width 和 layout_height 除非都规定死了
如果你要wrap_content的话 他就会根据图片的大小自由改变


如何开发一个Android应用程序?
准备开发环境:首先,您需要在计算机上安装Java开发工具包(JDK)和Android开发工具包(SDK)。确保您已经正确配置了这些工具,并设置了相应的环境变量。创建项目:使用Android Studio或其他适合您的开发工具创建一个新的Android项目。您可以选择项目名称、包名以及支持的最低Android版本等。开发应用:根据您的需...

Android软件开发主要是学习什么的?
Android软件开发是基于Android操作系统的移动应用程序开发。要成为一名Android软件开发者,你主要需要学习以下几个方面的内容:Java编程语言:**Android应用程序主要使用Java语言进行开发。学习Java是Android开发的基础,包括面向对象编程、数据结构等。Android开发环境:**了解并安装AndroidStudio,这是官方推荐的Andr...

androidapp开发教程
步骤一:设置开发环境 在开始开发Android应用程序之前,你需要安装AndroidStudio和Java开发工具包(JDK)。你可以从AndroidStudio官方网站下载AndroidStudio,从Oracle官方网站下载JDK。安装完成后,打开AndroidStudio,选择“StartanewAndroidStudioProject”。步骤二:创建项目 在创建新项目时,你需要设置应用程序的名...

Android开发如何入门
首先如果没有Java基础,建议先学习Java的语法知识,如果已经学会了一门语言(如c语言、c++、c#等),那么可以先边学Android边学Java,只要把Java语法规则学会就算入门了,再学点Java API就更好。Android开发工程师是干什么的Android开发工程师是指从事Android系统操作应用、游戏和各种Android平台功能应用、以...

安卓开发需要掌握哪些技术安卓开发需要
Android开发都需要使用什么语言?首先先说明一下app开发的类型:1、有原生开发的app,接近系统底层,可以调用系统组件,稳定,缺点是开发周期长,使用java语言开发 2、基于web开发的app,主要是把手机端网页封装到app中,缺点就是他本质只是网页,安卓苹果端都能用,需要掌握前端知识,例如html,css,javascript...

开发安卓app(从入门到精通)
AndroidStudio是官方推荐的安卓开发IDE,可以在官网上下载并安装最新版本的AndroidStudio。3.安装安卓虚拟机 安卓虚拟机是用来模拟安卓设备的软件,可以在AndroidStudio中下载并安装。二、创建第一个安卓app 1.创建新项目 打开AndroidStudio,点击“StartanewAndroidStudioproject”创建一个新的安卓项目。在“...

Android开发工程师是干什么的
Android开发工程师是指从事Android系统操作应用、游戏和各种Android平台功能应用、以手机开发为对象,对手机操作系统、手机游戏、以及其他多种功能进行开发的开发人员。Android开发工程师就业前景Android开发的前景是非常好的。 安卓行业近年发展较好,以目前行情来说,安卓开发行业的就业率和就业薪资比其他行业都高...

安卓开发需要学习什么
1,Android基础阶段:平台架构特性(JAVA\/C) Market\/应用程序组件 环境搭建与部署\/打包与发布 AVD\/DDMS\/AAPT 调试与测试 相关资源访问\/资源制作 Activity\/Service\/Broadcast Receiver\/Content Provider\/原理(生命周期)及深层实现 2,Android进阶初级:组件Widget\/ 菜单Menu\/ 布局Layout 详解 Xml解析(Pull\/Dom\/...

移动开发基础教程:Android是什么 安卓开发
Android开发可以在微软Windows、Mac OS X 或Linux上进行。本文假设您使用的是Eclipse IDE和用于Eclipse的Android Developer Tools插件。Android应用程序是用Java语言编写的,但是是在Dalvik VM(非Java虚拟机)中编译和执行的。在Eclipse中用Java语言编程非常简单;Eclipse 提供一个丰富的Java环境,包括上下文敏感帮助和代码提示...

安卓开发需要学习什么
1.Android基础阶段 主要需要掌握的技能体系:架构设计必入技能(注解、泛型)\/架构动态编程技术原理\/Android虚拟机指令\/Android虚拟机垃圾回收\/Android虚拟机类和对象的结构\/并发内存模型\/synchronize机制\/深入并发原理只线程池\/高效IO与数据序列化。2.Android开发核心部分 主要需要掌握的技能:UI优化\/启动优化\/...

江北区19811224515: Android Application中线性布局的特点 -
系泼孚顺: LinearLayout按照垂直或者水平的顺序依次排列子元素 每一个子元素都位于前一个元素之后. 如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构.如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列.线性布局可以分为水平和垂直方向的布局 可以通过android:orientation来定义方向 android:orientation=“horizontal”表示水平方向,android:orientation=“vertical”表示垂直方向.

江北区19811224515: 怎么让LinearLayout占据父布局的所有剩余空间 -
系泼孚顺: Android布局控件之LinearLayout详解 LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失.因此一个垂直列表的每一行只会...

江北区19811224515: 安卓开发如何设置wight比重 -
系泼孚顺: 当你要对线性布局(LinearLayout)的子View设置比重(layout_weight)时,要将这些字View的宽度(Layout_width)设置为0dp,这样比重才能够正常生效.而对于比重的值域设置,我们要根据需求来判断,比如要两个View平分整个空间,那么这两个View的比重就都要设置为1,也就是1:1.而如果左侧的View要是右侧的两倍大,或者说要占整个空间的2/3,那么左侧View的比重就要设置为2,右侧设置为1,也就是2:1,这样左侧占比就会变成2/(2 + 1),从而实现效果.比重也是根据线性布局的方向相关的,水平布局的比重决定View的宽度,垂直布局的比重决定View的高度.

江北区19811224515: android开发中线性布局的include怎么用 -
系泼孚顺: Android在xml文件中可使用include包含其他定义好的布局,可以将多处用到的布局单独出来,然后用include包含进来 下面是一个简单的示例,两个xml文件:main.xml文件:[html] <span style="font-size:14px;"><?xml version="1.0" encoding...

江北区19811224515: android 线性布局 居右 -
系泼孚顺: 线性布局默认是水平的,orientation的属性效果就是确定LinearLayout是纵线还是横线.就问题而言,一个控件在横线上在左边还是右边可以设置,但若是两个控件就不行了.若是可以的话,那让RelativeLayout情何以堪...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网