[计算机软件及应用]Android22布局管理分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[计算机软件及应用]Android22布局管理分析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 计算机软件 应用 Android22 布局 管理 分析 课件
- 资源描述:
-
1、主要内容 安卓的布局安卓的布局 1.1、LinearLayout 1.2、RelativeLayout 1.3、TableLayout 1.4、FrameLayout 1.5、AbsoluteLayout 1.6、嵌套布局嵌套布局 滚动视图滚动视图 2.1、垂直滚动视图垂直滚动视图 2.2、水平滚动视图水平滚动视图布局学习前言 一个Android视图有很多控件,那么怎么来控制它们的位置排列呢?我们需要容器来存放这些控件并控制它们的位置排列,就像HTML中div,table一样,Android布局也起到同样的作用。Android布局主要有以下几种:LinearLayout,RelativeLay
2、out,TableLayout,FrameLayout,AbsoluteLayout.最后一种AbsoluteLayout是通过指定控件的x/y坐标来定位的,不太灵活所以已经不推荐使用了。安卓布局-总览 andorid的界面,需要写在res/layout的xml里面,一般情况下一个xml对应一个界面。Android界面布局有点像写html(连注释代码的方式都一样),要先给Android定框架,然后再在框架里面放控件,Android提供了几种框架,AbsoluteLayout,LinearLayout,RelativeLayout,TableLayout,FrameLayout 各种布局的特征
3、FrameLayout:里面只可以有一个控件,控件会放到左上角 LinearLayout:里面可以放多个控件,但是一行只能放一个控件 TableLayout:这个要和TableRow配合使用,很像html里面的table AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置 RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置关于设置大小和高度pxpx(pixels)(pixels)像素像素 一般一般HVGAHVGA代表代表320 x480320 x480像素,这个用的比较多。像素,这个用的比较多。dipdip或或dpdp(device
4、independent pixels)(device independent pixels)设备独立像素设备独立像素 这个和设备硬件有关,一般为了支持这个和设备硬件有关,一般为了支持WVGAWVGA、HVGAHVGA和和QVGA QVGA 推荐使用推荐使用这个,不依赖像素。这个,不依赖像素。sp(scaled pixels best for text size)sp(scaled pixels best for text size)比例像素比例像素 主要处理字体的大小,可以根据系统的字体自适应。主要处理字体的大小,可以根据系统的字体自适应。下面几个不太常用:下面几个不太常用:in(inches
5、)in(inches)英寸英寸 mm(millimeters)mm(millimeters)毫米毫米 pt(points)pt(points)点,点,1/721/72英寸英寸为了适应不同分辨率,不同的像素密度,推荐使用为了适应不同分辨率,不同的像素密度,推荐使用dip dip,文字使用,文字使用spsp。布局组件之间的继承关系LinearLayout简介 线性布局由LinearLayout类来代表,它可以将容器里的组件一个一个的排列起来,以线性方向显示它的子视图(view)元素,即垂直地或水平地。LinearLayout的元素LinearLayout线性布局,包含在LinearLayout里面
6、的控件按顺序排列成一行或者一列,类似于Swing里的FlowLayout和Silverlight里的StackPanel,它的常用的属性主要包括:Orientation方向,即指定LinearLayout是代表一行还是一列,可以为horizontal或vertical,如android:orientation=vertical,当然也在可以在代码里通过setOrientation()方法来设置。Fill Mode填充方式,所有在LinearLayout的控件都必须指定它的填充方式,即设置android:layout_width和android:layout_height,可以为三种值(1)具体
7、的像素值,如20px(2)wrap_content,表示按控件文本实际长度显示(3)fill_parent,表示填充剩下的所有可用空间。Weight权重,如果你想让一行或一列的控件按比例显示,这时候权重就起到作用了,如想让一行里面两控件其中一控件占两倍于另一控件的空间,可以把其中一控件的android:layout_weight设置为1,另一个为2 即可。默认为零,意思是需要显示多大的视图就占据多大的屏幕空间。LinearLayout布局示例-1 LinearLayout布局示例-2 资源文件 Hello World,UIActivity!用户界面 请输入用户名 确定 取消 运行结果界面元素分
8、析 其属性“xmlns:android”指定命名空间,顶级元素必须指定命名空间。而在该命名空间中的控件的属性 如layout_width,要在属性前加上“android:”做前缀。其属性“layout_width”指定该元素的宽度,可选值有三种,“fill_parent”、“wrap_content”、具体数字(单位为 px)。其中“fill_parent”代表填满其父元素,对于顶级元素来说,其父元素就是整个手机屏幕。“wrap_content”代表该元素的大小仅包裹其自身内容,而数字则代表其占相应的 px。其属性“layout_height”指定该元素的高度,可选参数值与“layout_wi
9、dth”的参数意义相同。其属性“orientation”指定子元素排列方式,其中指定为“vertical”则是子元素垂直排列,每个子元素会占独立的一行,如图所示LinearLayout示例代码2-1 LinearLayout示例代码2-2 运行结果RelativeLayout 简介 RelativeLayout(相对布局)相对布局中的(相对布局)相对布局中的视图组件是按相互之间的相对位置来确定的视图组件是按相互之间的相对位置来确定的,并不是线性布局中的必须并不是线性布局中的必须 按行或按列单个显示。一个视图可以指定相按行或按列单个显示。一个视图可以指定相对于它的兄弟视图的位置(例如在给定视图对
10、于它的兄弟视图的位置(例如在给定视图的左边或者下面)或相对于的左边或者下面)或相对于RelativeLayout的特定区域的位置(例如底部对齐,或中间的特定区域的位置(例如底部对齐,或中间偏左)。偏左)。RelativeLayout 元素 android:layout_below=“id/text”:将该元素放到 id 为 text 的元素的下面。android:layout_toLeftOf=id/ok:放到 id 为 ok 的元素左边 android:layout_alignTop=id/ok:对齐 id 为 ok 的元素的顶部RelativeLayout 示例-1 RelativeLay
11、out 示例-2 RelativeLayout运行结果RelativeLayout界面元素分析-1 相对布局,它是依靠与父容器,同一容器中其它控件的相对位置来排列显示的。android:layout_alignParentTop:控件的顶部与父容器的顶部对齐 android:layout_alignParentBottom android:layout_alignParentLeft android:layout_alignParentRight.RelativeLayout界面元素分析-2 相对同一容器中其它控件的属性:android:layout_below 在某元素的下方 android
12、:layout_above 在某元素的的上方 android:layout_toLeftOf 在某元素的左边 android:layout_toRightOf 在某元素的右边 android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐 android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐 android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐 android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐RelativeLayout界面元素分析-3 属性值为具体的像素值,如
13、30dip,40px android:layout_marginBottom 离某元素底边离某元素底边缘的距离缘的距离 android:layout_marginLeft 离某元素左边缘离某元素左边缘的距离的距离 android:layout_marginRight 离某元素右边缘离某元素右边缘的距离的距离 android:layout_marginTop 离某元素上边缘离某元素上边缘的距离的距离TableLayout简介 表格布局是一个以表格显示它的子视图(view)元素,即行和列标识一个视图的位置。其实Android的表格布局跟HTML中的表格布局非常类似 TableLayout要和Tab
14、leRow配合使用,很像html里面的tableTableLayout元素 是顶级元素,说明采用的是表格布局 定义一个行 定义一个单元格的内容TableLayout示例-1 TableLayout示例-2 TableLayout示例-3 TableLayout示例-4 TableLayout示例-5 TableLayout示例-资源文件 姓名 性别 年龄 电话 男 女 张三 25 1234567 李四 24 7654321 TableLayout运行结果TableLayout代码分析 andriod:collapseColumns:设置需要被隐藏的列的列序号 andriod:shrinkCol
15、umns:设置需要被收缩的列的列序号 andriod:stretchColumns:设置需要被拉伸的列的列序号 例如:android:stretchColumns=0,1,2,3 该属性指定每行都由第“0、1、2、3”列占满空白空间。FrameLayout简介 帧布局容器为每个加入其中的组件创建一个空帧布局容器为每个加入其中的组件创建一个空白的区域(成为一帧,可以在其中填充一个单白的区域(成为一帧,可以在其中填充一个单一对象),所有每个子组件占据一帧,这些帧一对象),所有每个子组件占据一帧,这些帧都会根据都会根据gravity属性执行自动对齐。属性执行自动对齐。Xml属性属性 android:
16、foreground 设置该帧布局容器的前景图设置该帧布局容器的前景图像像 android:foregroundGravity 定义绘制前景图像定义绘制前景图像的的gravity属性属性FrameLayout元素 对子元素添加对子元素添加android:layout_gravity属性来属性来设置他们的位置设置他们的位置 在在FrameLayout布局里面布局里面android:layout_margin的各种属性必须依赖的各种属性必须依赖于于android:layout_gravity,也就是说,要想,也就是说,要想margin生效,必须设定生效,必须设定view的的layout_gravi
17、ty属性。属性。FrameLayout示例-1FrameLayout示例-2FrameLayout运行结果FrameLayout代码分析 属性名称对应方法描述android:foregroundsetForeground(Drawable)设置绘制在所有控件之上android:foregroundGravitysetForegroundGravity(int)设置绘制在所有子控件之上内容的gravity属性。ListView简介 ListView是一种列表视图,其将ListAdapter所提供的各个控件显示在一个垂直且可滚动的列表中。需要注意的为创建适配器并将其设置给ListView。列表元素
18、通过ListAdapter自动插入到列表。ListView元素 列表布局的关键部分:布局文件中定义ListView Adapter用来将数据填充到ListView 要填充到ListView的数据,这些数据可以字符串、图片、控件等等 其中Adapter是ListView和数据源之间的桥梁,根据数据源的不同Adapter可以分为三类:String:ArrayAdapter ListMap:SimpleAdapter 数据库Cursor:SimpleCursorAdapter ListView元素-ArrayAdapter ArrayAdapter ArrayAdapter由3个参数进行构造,第一个
19、为Context,第二个为在R文件中定义的Layout,也可用系统的R文件,第三个参数是一个数组,数组中每一项的类型没有限制。ListView示例ArrayAdapter-1 private static String data=a,b,c,d;Override public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);/setContentView(R.layout.main);ListView listview=new ListView(this);ArrayAdapter adapt
20、er=new ArrayAdapter(this,android.R.layout.arrayExample,data);/数据适配器 listview.setAdapter(adapter);/向组件增加数据 setContentView(listview);ListView示例ArrayAdapter-1 注意:arrayExample只有一个TextView(Android.R.layout.simple_list_item_1只有一个TextView)ListView示例ArrayAdapter-2 界面资源 ListView运行结果(ArrayAdapter)ListView元素元素
21、-SimpleAdapter SimpleAdapter SimpleAdapter的ArrayList里的每一项都是一个Map类型,每一项Map对象都和ListV中的一项进行数据绑定一一对应。ListView示例SimpleAdapter-1 private ListView listview;Override public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);listview=new ListView(this);data2=new ArrayListMap();Map ite
22、m;item=new HashMap();item.put(姓名,张三);item.put(性别,男);item.put(年龄,25);data2.add(item);item=new HashMap();item.put(姓名,李四);item.put(性别,男);item.put(年龄,33);ListView示例SimpleAdapter-2 data2.add(item);item=new HashMap();item.put(姓名,小王);item.put(性别,女);item.put(年龄,31);data2.add(item);SimpleAdapter adapter=new
展开阅读全文