Android LinearLayout深入学习

接触安卓有两个月的时间了,一直觉得LinearLayout有什么好学的,觉得想做比较复杂的应用UI都得是使用RelativeLayout才好,最近做项目看了别人的代码后才发现,线性布局在做复杂项目的时候,一样是非常重要!

1、layout_width:这个变量可以用来按比例摆放几个控件

2、layout_gravity:用来做控件对齐使用

3、多层Layout的嵌套,比如竖直分布中,每个又是水平布局,水平分布中又可以嵌套垂直布局,经过一些简单的组合,就可以做出非常漂亮、规法的界面,实行起来比使用相对布局更好调整。

下面这个例子实现了竖直和水平、竖直布局的结合。

效果图如下:

程序实现代码:

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

    <FrameLayout
        android:id="@+id/fl1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#00FF00"
        >
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00000000"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中"
            android:layout_gravity="center"
            />

    </FrameLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"
        >

        <LinearLayout
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:orientation="vertical"
            >

        <Button
               android:layout_width="match_parent"
               android:layout_height="60dp"
               android:layout_marginTop="10dp"
              android:layout_marginRight="15dp"
              android:layout_marginLeft="15dp"
               />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="按钮1"
            android:layout_gravity="center"
            />

        </LinearLayout>

       <LinearLayout
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"

        android:orientation="vertical"     

            >

        <Button
               android:layout_width="match_parent"
               android:layout_height="60dp"
               android:layout_marginTop="10dp"
              android:layout_marginRight="15dp"
              android:layout_marginLeft="15dp"
               />
                <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="按钮2"
            android:layout_gravity="center"
            />

        </LinearLayout>

       <LinearLayout
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"

        android:orientation="vertical"

            >
        <Button
               android:layout_width="match_parent"
               android:layout_height="60dp"
               android:layout_marginTop="10dp"
              android:layout_marginRight="15dp"
              android:layout_marginLeft="15dp"
               />
                <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="按钮3"
            android:layout_gravity="center"
            />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>
时间: 2024-10-24 13:39:48

Android LinearLayout深入学习的相关文章

android 浮动窗口学习笔记及个人理解(仿360手机助手)

非常感谢原文作者 http://blog.csdn.net/guolin_blog/article/details/8689140 经自己理解 程序运行界面如下图: 1.程序入口界面 2.小浮动窗口 3.大浮动窗口 由上图可看出,可以看出我们基本需要: 1.一个主Activity 2.小浮动窗口view界面 3.大浮动窗口view界面 对于浮动窗口的管理我们还需要 4.一个Service(在后台监控管理浮动窗口的状态) 5.窗口管理类(创建/消除浮动窗口) 代码: package com.ww.

Android自定义view学习笔记02

Android自定义view学习笔记02 本文代码来自于张鸿洋老师的博客之Android 自定义View (二) 进阶 学习笔记,对代码进行些许修改,并补充一些在coding过程中遇到的问题.学习的新东西. 相关代码 //CustomImageView.java package mmrx.com.myuserdefinedview.textview; import android.content.Context; import android.content.res.TypedArray; im

Android] Android XML解析学习——方式比较

[Android] Android XML解析学习——方式比较 (ZT) 分类: 嵌入式 (From:http://blog.csdn.net/ichliebephone/article/details/5981913) 一.基础知识 经过这段时间的学习,我们已经了解了Android平台上用于解析XML的三种方式:SAX.DOM和Pull.并且在学习的过程中也介绍了这三种方式各自的特点及适合的使用场合,简单的来说,DOM方式最直观和容易理解,但是只适合XML文档较小的时候使用,而SAX方式更适合

Android MVP模式学习(二)----Data Binding结合

公司项目最近已经用MVP模式重新构造完成,重构后的项目直观明了,代码复用性高,易于调试维护. 之后主管让我去了解MVC,MVP ,MVVM,Data Binding相关的知识,于是便有了下面这篇博客.参考资料: 选择恐惧症的福音!教你认清MVC,MVP和MVVM 完全掌握Android Data Binding 这里很感谢这两篇文章的理论与技术支持,感谢这些大神. OK,开始今天的主题. 关于MVP模式与MVVM模式孰是孰非,我想不是我一个初学者短短几句就能够说清楚的,我们也不用纠结于此.引用大

基于 Android NDK 的学习之旅----- C调用Java

http://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html 基于 Android NDK 的学习之旅----- C调用Java许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现. 下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法. 1.主要流程 1.  新建一个测试类TestProvider.java a)       

【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)

原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码) 基于 Android NDK 的学习之旅-----数据传输(引用数据类型) 接着上篇文章继续讲.主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输. 1.主要流程 1.  String 字符串传输 a)         上层定义一个native的方法

Android Web Service学习总结(一)

最近学习android平台调用webWebService,学习了一篇不错的博客(http://blog.csdn.net/lyq8479/article/details/6428288),可惜是2011年时的方法,而不适合现在android4.0之后的android版本,所以通过一番学习和研究,总结如下. web Service简介 通俗的理解:通过使用WebService,我们能够像调用本地方法一样去调用远程服务器上的方法.我们并不需要关心远程的那个方法是Java写的,还是PHP或C#写的:我

Android ARM指令学习

在逆向分析Android APK的时候,往往需要分析它的.so文件.这个.so文件就是Linux的动态链接库,只不过是在ARM-cpu下编译的.所以学习Android下的ARM指令很重要.目前,市面上的ARM-cpu基本都支持一种叫做THUMB的指令集模式.这个THUMB指令集可以看作是ARM指令集的子集,只不过ARM指令集为32bit,THUMB指令集为16bit.之所以要使用这个THUMB指令集,主要是为了提升代码密度.具体信息大家可以google. 下面介绍如何简单修改.so文件. 首先,

Android热修复学习之旅——HotFix完全解析

在上一篇博客Android热修复学习之旅开篇--热修复概述中,简单介绍了各个热修复框架的原理,本篇博客我将详细分析QQ空间热修复方案. Android dex分包原理介绍 QQ空间热修复方案基于Android dex分包基础之上,简单概述android dex分包的原理就是:就是把多个dex文件塞入到app的classloader之中,但是android dex拆包方案中的类是没有重复的,如果classes.dex和classes1.dex中有重复的类,当classes.dex和classes1