Android五大布局Demo

上传人:re****.1 文档编号:563843148 上传时间:2023-04-07 格式:DOC 页数:11 大小:1.46MB
返回 下载 相关 举报
Android五大布局Demo_第1页
第1页 / 共11页
Android五大布局Demo_第2页
第2页 / 共11页
Android五大布局Demo_第3页
第3页 / 共11页
Android五大布局Demo_第4页
第4页 / 共11页
Android五大布局Demo_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Android五大布局Demo》由会员分享,可在线阅读,更多相关《Android五大布局Demo(11页珍藏版)》请在金锄头文库上搜索。

1、android五大布局Demo截图:最初的界面包含了一个ListView,上面有6个 点击LinearLyaout后可以看到item,点击可看到每个item所对应的布局。 LinearLayout相关的布局点击RelativeLayout后可以看 点击FrameLayout后可以到RelativeLayout相关的布局 看到FrameLayout相关的布局点击TableLayout后可以看到 点击Grid View后可以看到TableLayout相关的布局 Grid View相关的布局点击TabLayout后可以看到TabLayout相关的布局部分代码及讲解ListView以列表的形式展示具体

2、内容。可以用适配器来把数据映射到ListView上,这里我在strings.xml声明了一个名为layout_array的数组。用 android:entries=”array/layout_array”将数据映射到ListView上。利用适配器也可以把字符串映射在ListView上。图片,或者基本组件也允许。通过实现ListView的setOnItemClickListener方法,运用switch语句,对于不同的item,根据其下标位置来建立对应的线程,跳转到另一个activity。在LinearLayout中,按照垂直或者水平的顺序依次排列组件,每一个子组件都位于前一个元素之后。如果是垂

3、直排列,那么将是一个N行单列的结构,每一行只会有一个组件,而不论这个组件的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。但是这样排列并不会死板,仍然可以将屏幕布局为多行多列的格式,这时就需要层层嵌套。代码布局如下,采用三层嵌套,先将ImageView和TextView竖直线性布局,形成一个小组合。将两个小组合实现水平线性布局,形成一个大组合,再将两个大组合竖直线性布局,完成整体布局。 父视图剩余的空间分配给设置了layout_weight的组件,所以将每一层嵌套的布局属性layout_weight均设置为1,这样,处于同一层嵌套的即拥有相同的比重,这样就可以实现让每一对ImageVi

4、ew和Textview占有屏幕的四等分之一。实现这样的布局,对一个小组合之中的ImageView与TextView的layout_marginLeft属性实现好后,可以对其他小组合进行相同的设置,使写代码更简便。下面是一个小组合的代码:一个小组合 在relativelayout中,顾名思义,就是按照各子组件相互之间的位置关系完成布局。在此布局中的子组件里与位置相关的属性将生效。对于相对布局的实现,在xml文件的Graphical Layout中可以自由拖动控件以确定其位置来自动生成代码。同样可以用代码实现。在相对布局中,常用的属性: android:layout_below=”id/one”

5、android:layout_alignParentRight=”true” android:layout_marginLeft=”10dip” android:layout_alignTop=”id/two”下面是一个控件的布局代码:实现的效果如图所示:image3:与image2右对齐,上对齐,且左部空白18dipimage218dp在FrameLayout中,整个界面被当做一块空白备用区域,所有的组件都讲显示在屏幕的左上角,后面的组件覆盖前面的组件。后面的组件将部分或者全部讲前面的组件遮挡。 当然也可以在frameLayout中套用其他的布局,我的想法是将包含一个居中的textview的

6、充满屏幕的线性布局覆盖在一个imageview上。代码如下。形成的效果如第一页的效果图所示。TableLayout顾名思义,适用于N行N列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行。我在每一个tablerow中添加了一个ImageView与TextView,即两列。然后在设置每个空间相应的属性。在TableLayout布局中,我将android:stretchColumns设置为1,即所有tablerow的第二列为扩展列(0代表第一列),意思就是让第二列扩展到所有可用空间。由于我将每个textview的gravit

7、y属性设置为right,并且我想要textview出现在屏幕最右边,所以讲stretchColumns设置为1,这样就完成了布局的实现。另外,列举一下其他重要的属性(虽然我这个程序中并没有用到)collapseColumns stretchColumns shrinkColumns 可以用”*”来表示所有列,同一列可以同时设置为shrinkable和stretchable。下面为一个TableRow的代码。前面实现的linearlayout,relativelayout,framelayout,tablelayout,主要通过对不同的xml文件进行实现。为了简便起见,java代码比较简单,就是

8、运用了setContentView()方法设置当前视图。例如,实现线性布局的java代码为:android五大布局,分别为LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(桢布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局)。下面实现的TabLayout其实就是TabWidget(切换卡).Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,要运用到TabHost,它是一个用来存放多个Tab标签的容器,每一个Tab都可以对应自己的布局,比如,电话本中的Tab布局就是一个线性布局要使用

9、TabHost,首先要通过getTabHost方法获取TabHost的对象,然后通过addTab方法来向TabHost中添加Tab,当然每个Tab在切换时都会产生一个事件,要捕捉这个事件,需要设置TabActivity的事件监听setOnTabChangedListener。在layout文件夹中建立tab.xml显示tab页面: 然后就是实现继承了TabActivity的m_TabActivity的java代码,在这里我建立了3个activity作为3个Tab的内容,并在AndroidManifest.xml中注册。同样为了简便起见,我仅仅在每个Tab中添加了一个ImageView。在Gri

10、dView中,在二维可滚动网格中呈现子项(Item)。Item来自与之相关的Adapter,在这里我自己定义了一个继承自BaseAdapter的ImageAdapter:在这里,我声明了一个名为mThumbIds的数组存放所有的图片。在布局文件中的描述:获取gridview并应用适配器。 我只是呈现了gridview的视图,并没有实现动作监听。注意事项1. 在List View中item是以数组的形式存放的,第一个下标为0,不是1.2. 在LinearLayout布局中,同一级的LinearLaout中layout_weight的值的比相当于比例。先设置大的容器的走向,然后设置大的容器里面控件

11、的布局走向。3. 在List View中,id需设为+id/android:list,如果为+id/list就会报错。4. TabHost.TabSpec是一个类,它继承了object,不是一个函数。5. 在Grid View中,当继承了BaseAdapter,需要重写getCount ,getItem, getItemId这几个函数,如果不写,程序就无法运行,重写时要注意返回的值,如果没有修改,为0,NULL,NULL,就不会出现设计的界面。6. 对于相对布局的实现,在xml文件的Graphical Layout中可以进行简单的拖拽以实现可视化布局,但是往往容易移动一个,另外相对于它的组件会做出相应的移动,所以要将在Graphical Layout的操作与代码实现结合起来完成布局。7. 需要注意的是,一个控件属性并不是在所有布局中都生效的,往往是在某个布局中,这个控件的某些属性生效。8. padding属性与margin属性的区别:padding是站在父view的角度描述问题,它规定它里面的内容必

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号