android开发之布局

     目前用得比较多的布局有线性布局、相对布局以及帧布局。

线性布局

     特点:组件一个挨着一个排列,通过设置,可以是横向排列或者是纵向排列。

 

帧布局

     特点:一个组件一帧,叠加在一起,起始位置都在布局的左上角,可以通过设置控制组件位置。

     如下面的xml文件,定义了6个TextView,每一个TextView都设置在布局的正中间,每一个颜色都不一样,并且越在外层,面积越小,就形成了如下效果。注意,在帧布局中,越后声明的控件在越上层,如果a控件在b控件之前声明,那么a控件会被b控件覆盖。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<!-- 依次定义6个TextView,先定义的TextView位于底层
    后定义的TextView位于上层 -->
<TextView android:id="@+id/view01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:width="320px"
    android:height="320px"
    android:background="#f00"
    />
<TextView android:id="@+id/view02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:width="280px"
    android:height="280px"
    android:background="#0f0"
    />
<TextView android:id="@+id/view03"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:width="240px"
    android:height="240px"
    android:background="#00f"
    />
<TextView android:id="@+id/view04"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:width="200px"
    android:height="200px"
    android:background="#ff0"
    />
<TextView android:id="@+id/view05"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:width="160px"
    android:height="160px"
    android:background="#f0f"
    />
<TextView android:id="@+id/view06"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:width="120px"
    android:height="120px"
    android:background="#0ff"
    />
</FrameLayout>

   效果:

图1

 

相对布局

     特点:组件位置可以通过相对兄弟组件、父容器来决定。

     如下面的代码,其效果如图2如示,第一个TextView通过android:layout_centerInParent="true" 使其位于布局正中间,而接下来4个TextView则通过描述其相对于第一个TextView位置来设置其位置,从而形成图2的效果。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<!-- 定义该组件位于父容器中间 -->
<TextView
    android:id="@+id/view01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/leaf"
    android:layout_centerInParent="true"
    />
<!-- 定义该组件位于view01组件的上方 -->
<TextView
    android:id="@+id/view02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/leaf"
    android:layout_above="@id/view01"
    android:layout_alignLeft="@id/view01"
    />
<!-- 定义该组件位于view01组件的下方 -->
<TextView
    android:id="@+id/view03"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/leaf"
    android:layout_below="@id/view01"
    android:layout_alignLeft="@id/view01"
    />
<!-- 定义该组件位于view01组件的左边 -->
<TextView
    android:id="@+id/view04"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/leaf"
    android:layout_toLeftOf="@id/view01"
    android:layout_alignTop="@id/view01"
    />
<!-- 定义该组件位于view01组件的右边 -->
<TextView
    android:id="@+id/view05"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/leaf"
    android:layout_toRightOf="@id/view01"
    android:layout_alignTop="@id/view01"
    />
</RelativeLayout>

 

图2

时间: 2024-10-07 14:18:28

android开发之布局的相关文章

Android开发 UI布局

Android开发 UI布局一.线性布局LinearLayout 什么是线性布局? 其实呢,线性布局就是把所有的孩子摆在同一条线上 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_paren

Android开发-动态布局小记

android动态布局相比静态布局,动态布局不用再将xml转变了布局代码,提高了一定的效率,当然可以忽略不记.动态布局主要是比较灵活,可以很快的在代码中直接修改布局,并直接使用控件进行业务逻辑开发.但代码量通常比较大,维护没有静态布局方便.不过,作为一个android开发人员,掌握一定的动态布局技巧,有时在工作中也是可以提高一定的代码开发效率.   在动态布局中,要想实现一个布局,一般是先创建五大布局的对象.然后对这些对象进行属性设置,之后再向里面添加子布局或控件. 以RelativeLayou

Android开发之布局优化

1.抽象布局标签 (1) <include>标签 include标签经常使用于将布局中的公共部分提取出来供其它layout共用,以实现布局模块化.这在布局编写方便提供了大大的便利. 以下以在一个布局main.xml中用include引入还有一个布局foot.xml为例.main.mxl代码例如以下: Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?xml version="1.0" encoding="utf-8"?

Android开发,布局xml文件命名注意事项——不能包含任何大写字母

转自:http://blog.sina.com.cn/s/blog_628b45090100zuit.html 在开发Android应用时,会接触到布局文件,一般在 工程名/res/layout/*.xml 目录下,这与网页开发时使用css控制布局类似,主要目的是使布局与程序代码分开,便于布局的修改以及控制. 如果使用eclipse平台开发,每一个Android项目,都会有一个R.java文件,该文件用于标识所有的资源,当资源文件(一般是位于res目录的下的*.xml文件)被修改了,R.java

Android开发之布局文件LinearLayout

LinearLayout-线性布局,该布局中的控件按照水平方向排列或者竖直方向排列. 通过属性android:orientation=""决定的,可选值:vertical和horizontal. 同时有一个比重属性,android:layout_weight="",可以通过填写每个控件的比重,获取控件在布局中的大小. 设计时可以只设定一行或一列的某个控件的比重属性,让其他控件不参与比重,只需要在该控件中设置android:layout_weight="&q

Android 开发中 布局加载的原理

Android 加载的优先级 是怎么样的? 我现在不了解 他是如何加载的额> 我现在 遇到 的问题是 我的app 主要是面向 720 和 480 的手机 但是有一些 320 的手机 安装的时候直接崩溃 你的意思 是 android 内部加载的布局文件的话 Android 加载内部机制: 第一: 加载 指定布局的的 layout 例如 : Layout-hdpi 第二: 如果没有 layout-720 就去加载 layout! 这样就解决了 APP 中的error: java.lang.Unsup

Android开发--微信布局(ListView)基本运用

ListView 1.ListVeiw 用来展示列表的View. 2.适配器 用来把数据映射到ListView上的中介. 3.数据    具体的将被映射的字符串,图片,或者基本组件. 根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter 其中以ArrayAdapter最为简单,只能展示一行字.SimpleAdapter有最好的扩充性,可以自定义出各种效果.SimpleCursorAdapter可以认为是SimpleAda

Android开发之布局的学习

FrameLayout-帧布局 实现效果: 代码: 1 <?xml version="1.0" encoding="utf-8"?> 2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height=&qu

Android开发之布局1--RelativeLayout布局

RelativeLayout 相对布局 true或false属性 Layout_centerHorizontal   当控件位于父控件的横向中间位置 Layout_centerVertical   当控件位于父控件的纵向中间位置 Layout_centerInParent     当控件位于父控件的中央位置 Layout_alignParentBotton 当控件低端与父控件低端对齐 Layout_alignParentLeft 当控件左侧与父控件左侧对齐 Layout_alignParentR