Android的UI布局总览

标签: android ui 布局 | 发表时间:2012-01-03 12:54 | 作者:亚卓
出处:http://www.cnblogs.com/

                  android布局的目的是为了实现不同屏幕比例适配而设计的,有五种布局类:FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout和TableLayout。五大布局类的继承关系如下(以FrameLayout为例):

java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout

一。FrameLayout简介

   FrameLayout框架布局,在此布局下的所有对象都固定在屏幕的做上角显示,不能指定位置。最大的特点是可以添加多个子类通过 android:layout_gravity来指定子类视图的位置。同一位置的子类视图处于层叠状,最上面的子类视图是最后添加的子类视图。

继承关系如下:

java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout

    它的子类:

Known Direct Subclasses

AppWidgetHostView, CalendarView, DatePicker, GestureOverlayView, HorizontalScrollView, MediaController, ScrollView, TabHost, TimePicker, ViewAnimator

Known Indirect Subclasses

ImageSwitcher, TextSwitcher, ViewFlipper, ViewSwitcher

二。RelativeLayout简介

    RelativeLayout相对布局,允许子元素指定他们相对于其他元素或者父元素的位置(通过ID指定),可以左右对齐,上下对齐,指定屏幕位置等形式来排列元素。

继承关系如下:

java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.RelativeLayout

常用属性介绍:

android:layout_above
Positions the bottom edge of this view above the given anchor view ID. 

android:layout_alignBaseline
Positions the baseline of this view on the baseline of the given anchor view ID. 

android:layout_alignBottom
Makes the bottom edge of this view match the bottom edge of the given anchor view ID. 

android:layout_alignLeft
Makes the left edge of this view match the left edge of the given anchor view ID. 

android:layout_alignParentBottom
If true, makes the bottom edge of this view match the bottom edge of the parent. 

android:layout_alignParentLeft
If true, makes the left edge of this view match the left edge of the parent. 

android:layout_alignParentRight
If true, makes the right edge of this view match the right edge of the parent. 

android:layout_alignParentTop
If true, makes the top edge of this view match the top edge of the parent. 

android:layout_alignRight
Makes the right edge of this view match the right edge of the given anchor view ID. 

android:layout_alignTop
Makes the top edge of this view match the top edge of the given anchor view ID. 

android:layout_alignWithParentIfMissing
If set to true, the parent will be used as the anchor when the anchor cannot be be found for layout_toLeftOf, layout_toRightOf, etc. 

android:layout_below
Positions the top edge of this view below the given anchor view ID. 

android:layout_centerHorizontal
If true, centers this child horizontally within its parent. 

android:layout_centerInParent
If true, centers this child horizontally and vertically within its parent. 

android:layout_centerVertical
If true, centers this child vertically within its parent. 

android:layout_toLeftOf
Positions the right edge of this view to the left of the given anchor view ID. 

android:layout_toRightOf
Positions the left edge of this view to the right of the given anchor view ID. 

三。LinearLayout简介

       LinearLayout线性布局,线性布局是所有布局中最常用的,他可以让其中的子元素按垂直或水平的方式排列(通过排列的方向设置),通常复杂的布局都是在LinearLayout布局中嵌套而成的。

继承关系如下:

java.lang.Object

android.view.View

android.view.ViewGroup

android.widget.LinearLayout

  他的子类有:

Known Direct Subclasses

NumberPicker, RadioGroup, SearchView, TabWidget, TableLayout, TableRow, ZoomControls

四。AbsoluteLayout简介

AbsoluteLayout绝对布局。指定了子元素的x/y坐标值,并显示在屏幕上。该布局没有屏幕边框,允许元素之间互相重叠,在实际中不提倡使用这种布局,因为固定了位置,所以在屏幕旋转式会有不完整。

java.lang.Object

继承关系如下:
android.view.View
android.view.ViewGroup
android.widget.AbsoluteLayout

他的子类有:

Known Direct Subclasses

WebView

*************This class is deprecated.
Use FrameLayout, RelativeLayoutor a custom layout instead.

五。TableLayout简介

TableLayout表格布局。将子元素的位置分配到行或列中,TableLayout布局有许多TableRow(行)组成,但没有列的概念,列是又行中的控件数目来决定的,TableLayout也是常有布局。TableLayout不会显示行、列、单元格的边框线。

继承关系如下:

java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.LinearLayout
android.widget.TableLayout

他的子类有:

android:collapseColumns
setColumnCollapsed(int,boolean)
The zero-based index of the columns to collapse. 

android:shrinkColumns
setShrinkAllColumns(boolean)
The zero-based index of the columns to shrink. 

android:stretchColumns
setStretchAllColumns(boolean)
The zero-based index of the columns to stretch. 

先总结到这么多,接下来再学习学习~~~

本文链接

相关 [android ui 布局] 推荐:

Android的UI布局总览

- - 博客园_首页
                  android布局的目的是为了实现不同屏幕比例适配而设计的,有五种布局类:FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout和TableLayout. 五大布局类的继承关系如下(以FrameLayout为例):.

谈谈Android的一些UI设计

- plidezus - 盒子UI
谈到应用程序设计,对设计师来说,Android就像是房间里的大象. 很多设计师会更希望这是iOS,在那里所有任何人都只需要关心iPhone手机,iPad和App Store. 然后没有人可以忽略Android,它目前已占据智能手机中最大的市场份额,且已经被广泛用于从平板电脑到电子阅读器等各种产品. 总之,谷歌的Android平台正在迅速遍地开花,品牌厂商们很难不注意到.

MIUI是个不错的Android UI系统

- Keven - Engadget 中国版
显然,点心不是唯一的专为中国用户打造的Android UI,你还可以选择民间的另一个版本:MIUI,也是不错,中国原创Android ROM小组出品,基于Android 2.2 原生开发,对短信和电话做了速度提升,同时整个UI和动画的切换也做了提升,感觉很不错,有兴趣的可以去官方网站去看看,目前支持Nexus One/HTC Desire G7,更多版本应该会在后续到来.

Android UI 组件开源软件

- - 移动开发 - ITeye博客
其实也算不上合集,只是将我经常用到的部分整理一下,如果您有好东西,也可以留言补充,. 可以参照应用Libraries for developers,ios的参照Libraries for developers Pro. https://github.com/JakeWharton/ActionBarSherlock (推荐).

Appium 在 Android UI 测试中的应用

- - IT瘾-startup
Android 测试工具与 Appium 简介. Appium 是一个 C/S 架构的,支持 Android/iOS Native, Hybrid 和 Mobile Web Apps 的测试框架,与测试程序通过 Selenum Webdriver 协议通讯. Webdriver 的好处是通过 HTTP RPC 的方式调用 Server 上的过程,编写测试脚本不受语言的限制,无论是 Python, Java, NodeJS 均可以方便的编写测试.

Android 平台的 Google Reader 更新 UI 并支持 Honeycomb

- 丁丁 - Engadget 中国版
Android 上的 Google Reader 软件总算更新了. 这次更新提供了新的用户界面以及 Honeycomb 平板计算机的支持,RSS 的重度使用者们,现在已经可以在 Xoom、Galaxy Tab 10.1 或其他兼容的平板计算机上,使用美观的双栏式界面浏览 RSS 订阅的文章了. 而此项 1.0.1 的更新也不仅仅针对平板设备更新,它也针对小屏幕设备的用户界面也换了新的面貌.

Android 3.0(蜂巢)交互&UI设计规范

- evan - 信息和交互 - UCD大社区
Android OS自上市以来,由于缺乏统一规划,使得不同设备在 1.5、1.6、2.0、2.1、2.2、2.3几大版本徘徊,本人用的HTC Hero(俗称G3)也是从1.5~2.3一个个版本,10多个rom手动刷机试过来的,过程及其纠结 ~. 多系统版本带来的问题就是缺乏交互、UI的一致性,外加硬件厂商HTC、摩托罗拉、三星、夏普(创新工场点心OS)、小米(MIUI)等公司热衷于UI的个性化发挥,以及民间高手的DIY rom 等因素,影响着安卓饭儿的用户体验,使各阶层用户徒增学习使用成本,也让APP开发者在不同版本兼容性间疲于奔命.

免费的Android UI库及组件推荐

- Johnny - ITeye资讯频道
短短数年时间Android平台就已经形成了一个庞大而活跃的开发者社区. 许多社区开发的项目业已进入成熟阶段,甚至可以用于商业的软件生产中,且不用担心质量问题. 本文编译自androiduipatterns,意在分享一些免费、开源的Android UI库及组件资源. 该项目可以实现下列的UI设计:. 动作栏(Action Bar).