`
guangfeng8023
  • 浏览: 5829 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Android中的布局

阅读更多

编写android视图有两种方式可以实现
1,通过配置xml来实现
2,通过动态编码来实现
通过第一种方式可以将视图和业务逻辑很好的分离开来,也是使用比较多的
第二种情况一般在需要动态改变页面布局的情况下使用

android的View的设计主要使用了java的组合模式
组合模式:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.
按照组合模式的定义,这里的单个对象可以具体到android的每一个基本组件(Button,CheckBox,TextView等等)
而组合对象是指那些实现了ViewGroup接口的对象
在android中,组合对象控制其内部所有单个对象的布局
有些组合对象本身也是UI组件可以拿来直接使用,如GridView,Spinner,ListView等等
而也有一些组合对象它们本身并不是UI组件,只是用于控制其内部所有单个对象的布局,也就是android中的布局对象

android中比较常用的布局有LinearLayout,TableLayout和Relativelayout
LinearLayout:
主要属性
orientation:horizontal|vertical用来表示是水平布局还是垂直布局
layout_weight:相对于其他组件该组件的空间分配比率
假设水平布局,且有3个组件
如果3各组件的layout_width全部为wrap_content,layout_weight为1、2、1,
则第二个组件的水平空间是第一个和第3个的空间之和

TableLayout
关键属性stretchColumns
android:stretchColumns="1,2"
stretchColumns属性用来指定哪一个column具备自动伸缩功能来匹配表格的宽度
表格的行
最常使用的是TableRow,用来表示表格的一行
除了使用TableRow我们也可是使用其他的View视图来作为TableLayout的children节点,那么这个视图将作为单独的一行存在,并占据着所有的column
注:TableLayout的children节点不能指定layout_width属性,它的值永远都是 FILL_PARENT,但我们可以指定layout_height属性(默认值是wrap_content)
而Linerlayout的children节点layout_width属性和layout_height是必须要指定的
表格的列column
表格的哪一行的单元格数(cell)最多,那么该表格的列数就是该行的单元格数
表格的单元格cell
每一个TableRow的children节点都代表一个cell,相当于html标签里的td
但与html不同的是,在TableLayout里我们不能让一个cell占有两个或两个以上的column
就像html中的<td colspan="2"> 这种格式无法实现
另外我们可以对每一个cell指定layout_column属性,用来表示该cell是显示在哪一个column中,column的起始计数是从0开始的

RelativeLayout
某一个组件的位置是相对于其他组件的位置来决定的
在与某个组件的比对过程中,所比对的组件是通过(@id/id)的方式来进行引用的,
因此在xml中声明新组件之前,应当首先声明与它进行比对的组件id
RelativeLayout所定义的布局规则rules
在xml中都是以layout_attribute的格式,这里只写出attribute
above  aligns a child's bottom edge with another child's top edge
below  aligns a child's top edge with another child's bottom edge
alignTop  aligns a child's top edge with another child's top edge
alignBottom aligns a child's bottom edge with another child's bottom edge   
alignBaseline aligns a child's baseline with another child's baseline
alignLeft  aligns a child's left edge with another child's left edge
alignRight  aligns a child's right edge with another child's right edge
alignParentLeft aligns the child's left edge with its RelativeLayout parent's left edge   true|false
alignParentRight aligns the child's right edge with its RelativeLayout parent's right edge   true|false
alignParentTop aligns the child's top edge with its RelativeLayout parent's top edge   true|false
alignParentBottom aligns the child's bottom edge with its RelativeLayout parent's bottom edge  true|false
centerHorizontal centers the child horizontally with respect to the bounds of its RelativeLayout parent true|false
centerVertival centers the child vertically with respect to the bounds of its RelativeLayout parent true|false
centerInParent centers the child with respect to the bounds of its RelativeLayout parent  true|false
toLeftOf  aligns a child's right edge with another child's left edge
toRightOf  aligns a child's left edge with another child's right edge
padding[Bottom|Left|Right|Top]=value
margin[Bottom|Left|Right|Top]=value
相比LinerLayout和TableLayout,RelativeLayout的构造最为复杂,功能也较为强大,缺点是可能会增加很多不必要的组件id来加大系统开销

分享到:
评论

相关推荐

    android界面布局详解

    在Android开发中,界面布局是构建用户界面的关键部分。它决定了应用中各个组件的位置和排列方式,从而影响用户体验。本文将深入探讨Android界面布局的各个方面。 1、用户界面及视图层次 Android用户界面主要由View...

    Android 相对布局实例

    在Android开发中,布局管理器是构建用户界面的关键部分,其中相对布局(RelativeLayout)是一种常见的布局方式。相对布局允许我们根据各个视图之间的相对位置来安排它们,这为设计复杂且灵活的用户界面提供了可能。...

    android 中页面布局使用demo

    下面我们将详细探讨Android布局及其在实际应用中的使用。 Android支持多种布局管理器,每种都有其特定的用途: 1. **线性布局(LinearLayout)**:这是最基础的布局,可以将子视图水平或垂直排列。通过设置`...

    android布局_Android布局_android_

    本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...

    Android xml布局文件生成工具

    在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...

    认识Android布局文件

    理解Android布局文件的使用是开发过程中必不可少的技能。通过LinearLayout,我们可以创建简单的线性布局,控制控件的排列方式和大小。随着学习的深入,还可以探索更复杂的布局容器,如RelativeLayout、...

    AndroidXML布局属性详解

    Android XML 布局属性是 Android 应用程序中最基本也是最重要的一部分。它负责控制屏幕上的各种控件的布局和排列。 Android XML 布局属性可以分为三类:第一类是属性值为 true 或 false 的布局属性,第二类是属性值...

    android常用布局的使用

    在约束布局中,每个视图都可以关联到其他视图的边缘,中心,或其他特性,如`app:layout_constraintTop_toBottomOf`,`app:layout_constraintStart_toEndOf`等。 七、滚动布局(ScrollView)与嵌套滚动布局...

    android框架布局demo

    在Android开发中,布局...通过下载并研究"android框架布局demo",你将有机会亲手实践这些概念,进一步加深对Android布局管理的理解,并提高你的应用开发技能。记得不断探索和尝试,让自己的应用界面更加精美和高效。

    android框架布局的使用

    在Android开发中,框架布局(FrameLayout)是基础布局之一,它允许你在屏幕上放置一个或多个视图,并且这些视图会按照它们被添加到布局中的顺序覆盖彼此。本教程将深入探讨如何有效地使用Android框架布局,这对于...

    android自定义圆形布局CircleLayout

    在Android开发中,自定义布局是提升应用独特性和用户体验的重要手段。`CircleLayout`就是一种特殊的自定义布局,它使得内部的子视图按照圆形排列,增强了界面的视觉效果。本篇文章将深入探讨如何实现这样一个自定义...

    Android中使用RelativeLayout完成梅花布局的代码清单.pdf

    在Android应用开发中,界面布局的设计是至关重要的。RelativeLayout是一种常用的布局管理器,它允许控件根据相对位置进行排列,提供了灵活的布局方案。本文主要介绍如何使用RelativeLayout来实现一个特殊的“梅花...

    Android Tablayout 自定义Tab布局的使用案例

    Android Tablayout 自定义Tab布局的使用案例 Android Tablayout 是 Android 设计库中的一部分,主要用于实现标签页功能。Tablayout 中的 Tab 可以自定义布局,以满足不同的需求。本文将 introduction 了 Android ...

    Android中布局保存成图片实例代码

    通过`getDrawingCache()`方法可以从布局中获取Bitmap对象。然后,调用`savePicture()`方法将Bitmap保存到外部存储。 ```java final Bitmap bmp = relativeLayout.getDrawingCache(); savePicture(bmp, "test.jpg...

    Android页面布局总结

    错误地将这些属性应用到不支持它们的布局中可能导致无效的结果。 2. **宽度和高度**:`android:layout_width`和`android:layout_height`这两个属性用于指定视图的大小。`wrap_content`用于使视图的大小适应其内容...

    android排版布局属性

    在Android应用开发中,布局是构建用户界面的关键环节,它决定了控件的排列方式和外观。其中,相对布局(RelativeLayout)是一种常用的布局方式,通过定义控件之间的相对位置,可以灵活地调整界面元素的布局。以下是...

    Android卡片布局实现

    除了基本属性外,还可以自定义CardView的颜色、大小、阴影等,通过在主题中定义`cardViewStyle`或者直接在XML布局中设置。 5. **交互处理**: 卡片上的操作可以通过监听事件来处理,例如点击事件。在Activity或...

    Android 显示/隐藏 布局

    6. **利用布局嵌套和可见性控制**: 可以在一个父布局中嵌套需要隐藏和显示的布局,然后根据需求控制父布局的`visibility`。这种方式可以确保隐藏布局时,其子视图也一同消失。 这些方法提供了一种更为动态和灵活的...

    Android 绝对布局的使用

    除了在XML中预先定义,你也可以在代码中动态添加子视图到绝对布局中: ```java AbsoluteLayout absoluteLayout = findViewById(R.id.absolutelayout); Button button1 = new Button(this); button1.setText("Button...

    android 布局生成图片

    在Android开发中,有时我们需要将一个布局转换为图片,例如为了实现分享到微信的功能,或者进行屏幕截图。本文将深入探讨如何在Android中实现“布局生成图片”这一技术,以及如何将其与微信分享功能集成。 首先,让...

Global site tag (gtag.js) - Google Analytics