android UI入门
来源:互联网 发布:知言养气的意思是什么 编辑:程序博客网 时间:2024/06/05 18:40
android UI入门
android应用程序的用户界面由分层的View object组成。每一个view代表界面上的一个区域。例如,一个按钮代表一个可以被用户点击的一个矩形区域。android应用把views放置在layout容器中,即ViewGroups。
view通用属性
所有的系统属性使用anroid:作为前缀。
Android使用特殊的尺寸单位,叫做dip(density-independent pixels)或者dp。这个是android处理不同屏幕大小和密度大小的一个方法。在定义UI元素大小的时候,应该使用dp。
height和width
每一个android中的view必须有height和width,通过layout_height和layout_width属性来定义。height和width的值可以设置为一个精确的大小或者特殊的象征性的值,wrap_content或者match_parent(Adnroid API version 8把之前的fill_parent修改为match_parent,但是fill_parent依然允许)。
对于wrap_content,View的大小取决于它包含内容的大小。而match_parent回让View扩充到整个Parent view。相对有指定精确的大小,使用wrap_content或者match_parent更为灵活。
margins和padding
Android使用两个属性在view周围产生空白:layout_margin和padding。margins在view的外部创造空白,把view和其他周围的view分开。padding在view内部(即view内容和view边界之间)产生空白区域。
Gravity
默认情况下,andrid会将view放在屏幕的左边。为了改变这种情况,你需要试用gravity属性。gravity控制view的子控件在view中的默认位置。
与gravity相似的是layout_gravity属性。gravity定义了view中子控件的位置,layout_gravity则定义了子控件相对于父控件的位置。
LAYOUT
Android分层的view通过layout容器开始。
FrameLayout
FrameLayout是最简单的容器。这个容器根本不排列子view。它只是简单的列出各个控件。当你要创建重叠的view时,可以使用它。
tablelayout
Tablelayout把数据显示为一个表格的形式。它把子view按照行和列排列,每一行包含一个TableRow容器。
和大多数view的子控件不同,TableLayout的子控件不能定义layout_width。每个单元格可以标记为跨越几行、扩充或者收缩去适应相应的控件。
LinearLayout
正如名字所提示的,这个容器将子view按照一个方向排列,横向或者纵向(通过orientation属性定义)。通过layout_weight属性可以定义子view占用多大的空间。它定义了一个view相对于其他views的权重。
默认情况下,layout_weight的值为0,这意味着它所占有的空间为它所包含的内容的大小。layout_weight设置为大于0会使得view填满容器中剩余的控件。
例如,一个layout中有三个按钮,他们的layout_weight属性分别为0,1,4。那第一个按钮占有的空间为显示它内容所需要的控件。而剩下的两个按钮填满剩下的区域。剩下的区域分为1+4=5份,第二个按钮占去剩下区域的1/5,第三个按钮占去4/5。使用weight使得你可以按照比例来排列views,很大程度提高了布局的灵活性。
关于使用layout_weight的一个困扰是layout_weight和layout_height和layout_width的关系。Weight通常情况下会覆盖height和width,但并不总是这样。如果打算使用layout_weight,把对应的height和width设置为0dp。这样,view的大小就会由weigth决定。
RelativeLayout
RelativeLayout比LinearLayout更灵活。正如它名字所提示的,它通过定义子view的相对于其他子view的相对位置来排列子view。常用到的属性有下列几种:
1、相对于parent,layout_alignParentTop,layout_alignParentBottom,
layout_alignParentRight,layout_alignParentLeft
layout_centerHorizontal,layout_centerVertical,layout_centerInParent
这些属性的值可以为ture或者false。
2、相对于子view:layout_alignTop,layout_alignBottom,layout_alignRight,layout_alignLeft
layout_alignBaseline
layou_above,layout_below,layout_leftof,layout_rightOf
这些属性的值为其他view的id。
GridLayout
在android4中,提供了一个新的layout容器,叫做gridLayout。它使得创建"仪表盘"风格的界面变得容易。
- android 多线程 UI 入门
- android UI入门
- Android 入门三 UI界面
- Android 入门之 -- Android UI 布局
- android入门(九) 常用UI组件
- Android入门——基本UI设计
- Android UI 开发入门—线性布局
- UI-1-UI入门
- Android UI之原生——(1)、Android UI入门及常见属性与现象
- Android入门:It's All About UI(1)
- Android入门:It's All About UI(2)
- 【Android基础入门〖1〗】UI布局
- 【Android基础入门〖1〗】UI布局
- Android官方入门文档[17]构建灵活的UI
- android入门(六) UI线程阻塞及其优化
- android入门(一)---UI组件之文本框(TextView)
- 前端之Android入门(2):程序目录及UI简介
- Android入门--UI开发--常用控件(2)
- HDU2000(ASCII码排序)
- 今天的解放过后的蜡笔小新
- Create your own controls - the art of subclassing
- c# 生成流水号
- Using R to Fix Data Quality: Section 1
- android UI入门
- 最优化:拟牛顿法、最速下降法、共轭梯度法、信赖域法、协同优
- 利用jsearch怎样搜索特定栏目里的信息?
- 航天飞机的宽度是由马屁股决定的
- 实施高效测试:测试用例设计与执行的敏捷化
- LCD 画线方法及C语言实现
- fedora 下的dos模拟器
- 在Java中避免空指针异常(Null Pointer Exception)
- 启用SQL Server报错,尝试运行项目时出错:方法不存在