ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:104.30KB ,
资源ID:7450666      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7450666.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AndroidLayout.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

AndroidLayout.docx

1、AndroidLayoutAndroidLayout有五大布局对象,分别是FrameLayout(帧布局)LinearLayout (线性布局)AbsoluteLayout(绝对布局)RelativeLayout(相对布局)TableLayout(表格布局)FrameLayout该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。Container所包含的widg

2、ets或者是container的队列是采用的堆栈的结构,最后加进来的widgets或者是container显示在最上面。所以后一个widgets或者是container将会直接覆盖在前一个widgets或者是container之上,把它们部份或全部挡住(除非后一个widgets或者是container是透明的,必须得到FrameLayout Container的允许)。其中Main.xml代码如下: Strings.xml代码如下: Hello World, LayoutTestActivity! LayoutTest Hello World, I can not be LOST!如下图,其中

3、TextView Hello2是最后FrameLayout最后加入的,所以该TextView应该是覆盖整个屏幕的,TextView hello1被其覆盖:LinearLayoutLinearLayout是一个盒子模型(Box Model),以垂直或水平的方向,按照相对位置来排列所有的widgets或者其他的containers。所有被包含的widgets或者是containers都被堆放在container之后,因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout

4、保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。LinearLayout还支持为其包含的widget或者是container指定填充权值。好处就是允许其包含的widget或者是container可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串widgets或者是containers挤成一堆的情况,而是允许他们放大填充空白。剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕。默认的 weight 值为0,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将Co

5、ntainer剩余可用空间分割,分割大小具体取决于每一个widget或者是container的layout_weight及该权值在所有widgets或者是containers中的比例。例如,如果有三个文本框,其中两个指定的权值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大,按实际大小来显示。如果前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的。也就是权值越大,重要度越大。如果LinearLayout包含子LinearLayout,子LinearLayout之间的权值越大的,重要度则越小。如果有Lin

6、earLayout A包含LinearLayout C,D,C的权值为2,D的权值为1,则屏幕的2/3空间分给权值为1的D,1/3分给权值为2的C。在LinearLayout嵌套的情况下,子LinearLayout必须要设置权值,否则默认的情况是未设置权值的子LinearLayout占据整个屏幕。我们看一下效果图:其中main.xml代码如下: 下面一个例子用来解释一下LinearLayout的一些属性的设置,在LinearLayout中包含有两个RadioGroup,上面的RadioGroup设置了一行的RadioButton,如android:orientation=horizontal,

7、下面的一个设置了一列的RadioButton。每个RadioGroup都在其周围设置了padding用来和其他的RadioGroup区分开。这两个RadioGroup的layout_height和layout_width都设置为Wrap_content,这些RadioGroup只会按照实际显示大小来显示。 Main.xml的内容如下: 具体示图如下:下面将通过在Activity里面动态修改LinearLayout(二)中相应的属性来改变屏幕布局,代码如下:package com.hemi.LayoutTest; import android.app.Activity;import androi

8、d.os.Bundle;import android.view.Gravity;import android.text.TextWatcher;import android.widget.LinearLayout;import android.widget.RadioGroup;import android.widget.EditText; public class LayoutTestActivityextends Activityimplements RadioGroup.OnCheckedChangeListener RadioGrouporitentation; RadioGroupg

9、ravity; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); oritentation = (RadioGroup)findViewById(R.id.orientation); oritentation.setOnCheckedChangeListener(this); gravity =(Rad

10、ioGroup)findViewById(R.id.gravity); gravity.setOnCheckedChangeListener(this); public void onCheckedChanged(RadioGroup group,int checkedId) if(group=oritentation) if(checkedId = R.id.horizotal) oritentation.setOrientation(LinearLayout.HORIZONTAL); gravity.setOrientation(LinearLayout.HORIZONTAL); else

11、 oritentation.setOrientation(LinearLayout.VERTICAL); gravity.setOrientation(LinearLayout.VERTICAL); else if(checkedId = R.id.left) oritentation.setGravity(Gravity.LEFT); gravity.setGravity(Gravity.LEFT); else if (checkedId = R.id.right) oritentation.setGravity(Gravity.RIGHT); gravity.setGravity(Grav

12、ity.RIGHT); else oritentation.setGravity(Gravity.CENTER_HORIZONTAL); gravity.setGravity(Gravity.CENTER_HORIZONTAL); 通过点击Oritentation和Gravity的RadioGroup来控制布局,默认的布局由main.xml来配置。点击horizontal,vertical或者center和right可改变布局,示图如下:RalativeLayout我们从RalativeLayout可以知道,该布局的父子Container中所有的Widgets之间的位置都是相对的。你可以把Wi

13、dget A放在Widget的左下方,或者放在Widget的底边并和Container的底边之间。它允许为Container或者widget指定其相对于其他widgets或者父Container的位置。Container或者widgets是按顺序排列的,如果第一个Container或者widget在屏幕的中央,那么相对于其的其他Container和widgets将以屏幕的中央来排列。如果使用XML的Layout文件来定义,被引用的Container或者widgets必须被定义。在XML的layout文件中,我们就能够引用同一文件的Widgets,并且可以标识其他Widgets的相对位置。标识一

14、个Widgets在其Container中的位置,我们有下面的属性参数可以用,这些参数的值可以使true或者false:1).android:layout_alignParentTop: 表示widget的顶部和Container的顶部重合。2).android:layout_alignParentBottom: 表示widget的底部和Container的底部重合。3).android:layout_alignParentLeft:表示widget的左边和Container的左边重合。4).android:layout_alignParentRight:表示widget的右边和Containe

15、r的右边重合。5).android:layout_centerHorizontal:表示widget处于Container水平方向上的中间。6).android:layout_centerVertical:表示widget处于Container垂直方向上的中间。7).android:layout_centerInParent:表示widget处于Container平面上的正中间。标识同一个Container中的不同的widgets之间的相对位置时,可有用如下的属性参数,参数值是其他widgets的应用。相对位置上的widgets的引用的设定如下:首先必须给所有的被引用的widgets赋予标示符

16、,通过android:id的属性,格式如+id/widget1,然后在其他widget引用的时候使用同样的标示符,格式如id/widget1,例:如果widget A标识为+id/widget A,则widget B在其属性里面通过id/widget A引用widget A。1).android:layout_above: 表示该widget必须位于参数值标识的widget的上方。2).android:layout_below: 表示该widget必须位于参数值标识的widget的下方。3).android:layout_toLeftOf: 表示该widget必须位于参数值标识的widget的

17、左方。4).android:layout_toLeftOf: 表示该widget必须位于参数值标识的widget的右方。5).android:layout_alignTop: 表示该widget的顶部必须参数值标识的widget的顶部重合。6).android:layout_alignBottom: 表示该widget的底部必须参数值标识的widget的底部重合。7).android:layout_alignLeft: 表示该widget的左边必须参数值标识的widget的左边重合。8).android:layout_alignRight: 表示该widget的右边必须参数值标识的widget

18、的右边重合。9).android:layout_alignBaseLine: 表示该widget的BaseLine必须参数值标识的widget的BaseLine重合。这个主要用于Label或者其他包含文本的widgets。在我们引用widget时不能引用该文件中尚未定义的widget。具体的示例如下: 示图如下:TableLayoutAndroid 的TableLayout的布局就像Html的表格一样,可以根据我们的说明来安排widgets的位置。我们可以自己控制屏幕的行数和列数,而每列可以根据包含的内容进行伸缩。通常情况下,TableLayout有多个TableRow组成,每个TableRow就是一行,定义几个TableRow就是定义几行。TableLayout不会显示行或者列或者cell的边线。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2