android几种布局

android几种布局
android几种布局

android几种布局

LinearLayout

orientation:指定控件的方向,分别有horizontal(水平),vertical(垂直),在代码里可通过setOrientation()进行动态改变,值分别为HORIZONTAL或者VERTICAL

fill model:可分别使用android:layout_width和

android:layout_height来指定宽度和高度。在指定宽度和高度时,可指定尺寸,如125px,也可以使用“wrap_content”使控件根据内容来自适应或者可以使

用“fill_parent”占满该控件所在容器的所有空间。Weight:对应的设置为android:layout_weight。layout_weight 用于给一个线性布局中的诸多视图的重要度赋

值。所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕

空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的

layout_weight值以及该值在当前屏幕布局的整体

layout_weight值和在其它视图屏幕布局的

layout_weight值中所占的比率而定。举个例子:比如说我们在水平方向上有一个文本标签和两个文本

编辑元素。该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。如果两个文本

编辑元素每一个的layout_weight值都设置为1,则两者平分在父视图布局剩余的宽度(因为我们声明这

两者的重要度相等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置

为2,则剩余空间的三分之二分给第一个,三分之一分给第二个(数值越小,重要度越高)。但是对于

LinearLayout之间则以反比的形式显示在屏幕上(即数值越小,重要度越小)

Gravity:各个控件默认是left-and top-aligned的,但可通过对应的xml属性android:layout_gravity重新设置

(在代码中可通过setGravity()进行设置)

Padding:为边距,可通过android:padding属性进行设置,4个方向的边距属性为android:paddingLeft,

android:paddingRight, android:paddingTop, and

android:paddingBottom.

以下为一个简单的演示:

先建一个Android功能,在main.xml中录入如下内容:Activity内容如下:

Java代码

1. package com.cenphoenix.demo.linelayout;

2.

3. import android.app.Activity;

4. import android.os.Bundle;

5. import android.view.Gravity;

6. import android.widget.LinearLayout;

7. import android.widget.RadioGroup;

8.

9. public class LineLayout extends Activity implements

10. RadioGroup.OnCheckedChangeListener {

11.

12.

13. RadioGroup orientation;

14. RadioGroup gravity;

15.

16. @Override

17. public void onCreate(Bundle icicle) {

18. super.onCreate(icicle);

19. setContentView(https://www.360docs.net/doc/ff2677133.html,yout.main);

20. orientation = (RadioGroup) findViewById(R.id.orientation);

21. orientation.setOnCheckedChangeListener(this);

23. gravity = (RadioGroup) findViewById(R.id.gravity);

24. gravity.setOnCheckedChangeListener(this);

25. }

26.

27. public void onCheckedChanged(RadioGroup group, int checkedId) {

28. if (group == orientation) {

29. if (checkedId == R.id.horizontal) {

30. orientation.setOrientation(LinearLayout.HORIZONTAL);//水平

31. } else {

32. orientation.setOrientation(LinearLayout.VERTICAL);//垂直

33. }

34. } else if (group == gravity) {

35. if (checkedId == R.id.left) {

36. gravity.setGravity(Gravity.LEFT); // 点击时该组组件居左

37. } else if (checkedId == R.id.center) {

38. gravity.setGravity(Gravity.CENTER); //center_horizontal 点击时该组组件居中

39. } else if (checkedId == R.id.right) {

40. gravity.setGravity(Gravity.RIGHT); // right 点击时该组组件居右

42. }

43. }

44. }

AbsoluteLayout

这是一个按照绝对坐标定义的布局,由于使用绝对坐标去定位控件,因此要实现自适应界面时,应尽少使

用AbsoluteLayout。AbsoluteLayout 里面的控件都以layout_x 、layout_y 来定义其位置:

上图中的TextView01的X坐标为10px,Y坐标为10px:

RelativeLayout

RelativeLayout是一个按照相对位置排列的布局,跟AbsoluteLayout这个绝对坐标布局是个相反的理解。

在RelativeLayout布局里的控件包含丰富的排列属性:

Layout above:选择ID A,则该控件在A控件的上方,Layout below、Layout to left 等同样用法。使用

RelativeLayout布局的时候,最好在界面设计时做好布局,尽少程序运行时做控件布局的更改,

因为RelativeLayout布局里面的属性之间,很容易冲突,例如,Layout below、Layout above

同选ID A,那就肯定发生冲突了。

FrameLayout

FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象—比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。

其中关键的是layout_gravity,负责控制控件的位置。

我们看一下效果图:

其中Main.xml 代码如下:

TableLayout

TableLayout跟TableLayout 是一组搭配使用的布局,TableLayout置底,TableRow在TableLayout的上面,而TextView 等控件就在TableRow之上,另外,TableLayout之上也可以单独放控件。TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果。

运行结果:

注意:TableLayout经常用的属性是:

android:collapseColumns:以第0行为序,隐藏指定的列,

android:collapseColumns该属性为空时,则显示所有列,把android:collapseColumns=0,2,意思是把第0

和第2列去掉。

如果android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分。

Android布局属性大全

Android布局属性大全 布局: AbsoluteLayout(绝对布局): xmlns:android="https://www.360docs.net/doc/ff2677133.html,/apk/res/android" style="@..." android:clipChildren="true|false" android:clipToPadding="true|false" android:layoutAnimation="@---" android:animationCache="true|false" android:persistentDrawingCache="none|animation|scrolling|all":持续高速缓存绘图 android:alwaysDrawnWithCache="true|false" android:andStatesFromChildre="true|false" android:descendantFocusability="beforeDescendants|afterDescendants|bl ocksDescendants":后裔可聚焦 android:id="@+id/absoluteLayout" android:tag="@---" android:android:scrollX="---" android:android:scrollY="---" android:background="@---" android:padding="----" android:paddingLeft="----" android:paddingTop="----" android:paddingRight="----" android:paddingBotton="---" android:focusable="true|false" android:focusableInTouchMode="true|false" android:visibility="visible|invisible|gone" android:fitsSystemWindows="true|false":适合系统窗口 android:scrollbars="none|horizontal|vertical" android:scrollbarStyle="insideOverlay(内覆盖)|insideInset(内插 图)|outsideOverlay(外覆盖)|outsideInset(外插图)" android:isScrollContainer="true|false":是一个滚动集合 android:fadeScrollbars="true|false":褪色的滚动条 android:scrollbarFadeDuration="---":卷轴淡出 android:scrollDefaultDelayBeforeFade="---":滚动前默认延迟 android:scrollbarSize="---" android:scrollbarThumbHorizontal="@----":拇指水平滚动条 android:scrollbarThumbVertical="@----":拇指垂直滚动条 android:scrollbarTrackVertical="@---":垂直滚动条轨道 android:scrollbarTrackHorizontal="@---":水平滚动条轨道 android:scrollbarAlwaysDrawHorizontalTrack="true|false":水平滚动条总是吸引轨道

Android 开发之旅-view的几种布局方式及实践

Android 开发之旅:view的几种布局方式及实践 https://www.360docs.net/doc/ff2677133.html,/1943397/363552 2010-06-06 14:14:00 标签:布局 View 实践移动开发 Android 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。 https://www.360docs.net/doc/ff2677133.html,/1943397/363552 引言 通过前面两篇: 1.Android 开发之旅:又见Hello World! 2.Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了。在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍。View的布局显示方式有下面几种:线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)、绝对布局(AbsoluteLayout)。本文虽然是介绍View的布局方式,但不仅仅是这样,其中涉及了很多小的知识点,绝对能给你带来Android大餐! 本文的主要内容就是分别介绍以上视图的七种布局显示方式效果及实现,大纲如下: 1.1、View布局概述 2.2、线性布局(Linear Layout) 1. 2.1、Tips:android:layout_weight="1" 3.3、相对布局(Relative Layout) 4.4、表格布局(Table Layout) 5.5、列表视图(List View) 1. 5.1、一个小的改进 2. 5.2、补充说明 6.6、网格视图(Grid View) 7.7 、绝对布局() 8.8、标签布局(Tab Layout) 1、view的布局显示概述 通过前面的学习我们知道:在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。 View的布局显示方式直接影响用户界面,View的布局方式是指一组View元素如何布局,准确的说是一个ViewGroup中包含的一些View怎么样布局。ViewGroup类是布局(layout)和视图容器(View container)的基类,此类也定义了https://www.360docs.net/doc/ff2677133.html,youtParams类,它作为布局参数的基类,此类告诉父视图其中的子视图想如何显示。例如,XML布局文件中名为layout_something的属性(参加上篇的4.2节)。我们要介绍的View的布局方式的类,都是直接或间接继承自ViewGroup类,如下图所示:

Android七种布局解析

我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!” 程序来实践证明了。在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View 的几种布局显示方法,以后就不会在针对布局方面做过多的介绍。View的布局显示方式有下面几种: 线性布局(Linear Layout)、 相对布局(Relative Layout)、 表格布局(Table Layout)、 网格视图(Grid View)、 标签布局(Tab Layout)、 列表视图(List View)、 绝对布局(AbsoluteLayout)。本文虽然是介绍View的布局方式,但不仅仅是这样,其中涉及了很多小的知识点,绝对能给你带来Android大餐! 本文的主要内容就是分别介绍以上视图的七种布局显示方式效果及实现,大纲如下: ?1、View布局概述 ?2、线性布局(Linear Layout) o 2.1、Tips:android:layout_weight="1" ?3、相对布局(Relative Layout) ?4、表格布局(Table Layout) ?5、列表视图(List View) o 5.1、一个小的改进 o 5.2、补充说明 ?6、网格视图(Grid View) ?7 、绝对布局() ?8、标签布局(Tab Layout) 1、view的布局显示概述 通过前面的学习我们知道:在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。A ndroid中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。 View的布局显示方式直接影响用户界面,View的布局方式是指一组View元素如何布局,准确的说是一个ViewGroup中包含的一些View怎么样布局。ViewGroup类是布局(layout)和视图容器(View containe r)的基类,此类也定义了https://www.360docs.net/doc/ff2677133.html,youtParams类,它作为布局参数的基类,此 类告诉父视图其中的子视图想如何显示。例如,XML布局文件中名为layout_so mething的属性(参加上篇的4.2节)。我们要介绍的View的布局方式的类,都是直接或间接继承自ViewGroup类,如下图所示:

Android_布局详解【图文】

Android 布局详解【图文】 Android 布局是开发中非常重要的一个知识部分,它的布局分为以下几种: Linear Layout:线性布局 Relative Layout:相对布局 Table Layout:表格布局 FrameLayout AbsoluteLayout Grid View:网格布局 Tab Layout:选项卡布局 List View:列表布局 一、Linear Layout 简单来说,直着排,横着排都可以,还可以嵌套,此布局运用的非常多。下面直接上示例代码及截图:

接下来,看一下布局XML文件: