Android界面Layout介绍

上传人:门**** 文档编号:245991999 上传时间:2024-10-11 格式:PPT 页数:36 大小:758KB
返回 下载 相关 举报
Android界面Layout介绍_第1页
第1页 / 共36页
Android界面Layout介绍_第2页
第2页 / 共36页
Android界面Layout介绍_第3页
第3页 / 共36页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Android应用开发,03,界面,Layout,介绍,资源文件的管理,Layout XML,LinearLayout,RelativeLayout,TableLayout,FrameLayout,AbsoluteLayout,自定义,Layout,Android,切换多个,layout,界面,2,首先介绍一下andorid的资源文件,认识这些资源文件对以后开发是必要的。,所有的,Android,应用程序都由两部分组成:功能代码和资源。功能代码决定应用程序的行为,它包括让应用程序得以运行的所有算法。资源包括文本字符串、图像和图标、音频文件、视频和其他应用程序使用的组件。,如果我们使用,ADT,开发的话,它为我们在后台自动调用,AAPT,编译资源,我们就可以省了很多事。不然的话,我们得使用,AAPT,自己去编译资源了。本文使用的是,eclipse+ADT,开发环境。资源目录截图如下图所示。,资源文件的管理,3,在,res,目录下的都是资源文件,用的多的是,layout,、,values,、,drawable,等。,资源目录的层级结构如下表所示,表中显示了,Android SDK,支持的资源类型以及它们在工程中的存储方式。,资源文件的管理,AAPT,贯穿所有在,/res,目录下正确格式化的文件,并且在目录,/gen,中生成类文件,R.java,,以访问所有变量。,R.java,这个文件很有用,界面文件(即,layout,下面的定义的界面)和实现代码就是通过,R.java,联系的。,Layout,对于迅速的搭建界面和提高界面在不同分辨率的屏幕上的适应性具有很大的作用。这里简要介绍,Android,的,Layout,和研究一下它的实现。,Android,有五种,Layout,:,FrameLayout,、,LinearLayout,、,TableLayout,、,RelativeLayout,、,AbsoluteLayout,。,1.FrameLayout:,里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角。,2.LinearLayout:,里面可以放多个控件,但是一行只能放一个控件。,3.TableLayout:,这个要和,TableRow,配合使用,很像,html,里面的,table,。,4.RelativeLayout:,里面可以放多个控件,不过控件的位置都是相对位置。,5.AbsoluteLayout:,里面可以放多个控件,并且可以自己定义控件的,x,,,y,的位置。,Layout XML,s,tyle.xml,简介,:,有时候我们不满足于系统控件的外观要改变一些背景,文字颜色等,这些属性可以在代码里更改,随便哪种控件,我们点,.,,后面会出来一大串,set,开头的方法。但是在代码里这样改来改去还是比较麻烦的,如果同样的控件多了,重复的代码也比较多。控件的这些属性也是可以在,xml,文件里改的,同样的控件多了,还是会带来代码的重复。这里我们就可以用设置控件样式的方法了。下面以,EditText,控件为例来说明如何来设置一个控件的样式。,第一步:建立一个新的工程,在,main,布局里面建立三个,EditText,控件。,第二步:在工程的,res/values,文件夹下新建一个,xml,文件内容如下:,#1A4EA4,#FFF111,#A6C60F,#EC02C3,Layout XML,说明:这里建立了两种样式,从字面意思上可以看出这两,种样式分别都更改了背景颜色和文字颜色,一个控件可以更改的属性有很多,这里只改了两个,要改其它的属性,我们要知道属性的,name才可以改。那所有的属性的名字在哪呢?找了一番终于找到了,所有的属性的名字在一个attrs.xml文件里。这个文件存在于:platformsandroid-xdataresvalues 目录下,找到这个文件以后我们改某些属性时可以做为查看的资料了。,上面的两个样式中,都有一个parent属性。这就不难理解style是可以继承的。在这里我们继承的是系统默认的EditText属性,只修改了背景和文字颜色而已。那系统的EditText样式是在哪定义的呢?找了一番终于也找到了,所有系统控件的样式是在一个style.xml文件中,这个文件也在上面说的那个目录下。里面我们可以找到Widget.EditText的样式定义。有了它我们也可以查看某一种控件可以更改哪些样式了。,在设置style时,我们经常用到和?表明引用的资源是在一个项目或是系统框架中定义过的。?表明引用的资源是在当前的主题定义过的。上面的设置背景中的值除了可以是颜色的值外,还可以是一个图片的引用。,第三步,:我们修改,main布局文件中EditText的属性。为了对比,我们将第一个属性,不做改变,第二个的,style属性设为我们上面建立的name为et1的样式。第三个的style属性设为我们上面建立的name为et2的样式,代码如下:,Layout XML,Layout XML,下面是截图:,Layout XML,Layout XML,strings.xml,简介:,开发人员可以通过手工编写资源的,XML,文件,使用,AAPT,编译它们并生成,R.java,文件来定义简单的资源,推荐使用,ADT,插件。,创建完工程后,在,Eclipse,中定位至,/res/values/strings.xml,文件,双击可以编辑它。我们可以使用,Resources,标签下的,Add,按钮添加几个资源。也可以切换到源文件编辑模式。定义的如下:,Hello World,ActivityIntent!,ActivityIntent,The Activity and The Intent test!,测试,另一个,Activity,电话按钮,个人认为,统一界面风格的时候可以用到,比如,我们把按钮btnOK的全部显示为“确定”,所有的按钮的宽度和高度设置好,可以定义这样一些的节点,确定,100px,25px,Layout XML,这样,我们在定义界面的时候,可以这样写:,保存Strings.xml文件。Eclipse插件将自动在你的工程中生成R.java文件,并含有适当的资源ID,以供编译之后使用程序访问这些资源。如果你定位到/gen/目录下的R.java文件,你可以看到:(所有的资源文件,都在R.java里面有对应),资源的读取,当我们创建好资源并保存后,我们就可以在程序通过资源的ID来使用资源了。,比如说,我们获取资源ID为hello的内容:,String str=getResources().getString(R.string.hello);,它的用法很简单:在,LinearLayout,里面的控件,以垂直或水平的方向,按照相对位置来排列所有的控件(包括所有的,widgets,和,containers,)。如果,LinearLayout,设置成为垂直,那么每一行只会有一个,widget,或者是,container,,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。,示例代码:,LinearLayout,属性:,1.,android:orientation 决定了排列方向,如果参数orientation=horizontal 则按照水平排列;如果参数orientation=vertical,则按照垂直排列。,2.,android:layout_width,定义当前视图在屏幕上可以占据的宽度,fill_parent即填充整个屏幕;wrap_content用当前视图的最佳宽度显示。,3.,android:layout_height 定义当前视图在屏幕上可以占据的高度,和layout_width 类似。,LinearLayout 可以相互嵌套,例如:,LinearLayout,RelativeLayout,顾名思义,这是一个相对布局。也就是说这个布局里面的元素是按照相对位置来布局的,允许其子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。,示例代码:,RelativeLayout,这种布局的灵活性大,当然属性也多,操作难度也大。不同的属性之间很有可能会产生冲突。相对布局常用属性:,第一类:属性值为,true,或,false,(以屏幕为参照),android:layout_centerHrizontal,android:layout_centerVertical,android:layout_centerInparent,android:layout_alignParentBottom,android:layout_alignParentLeft,android:layout_alignParentRight,android:layout_alignParentTop,android:layout_alignWithParentIfMissing,第二类:属性值必须为id的引用名“id/id-name”(以上一个控件为参照),android:layout_below,android:layout_above,android:layout_toLeftOf,android:layout_toRightOf,android:layout_alignTop,RelativeLayout,第三类:属性值为具体的像素值,如30dip,40px,android:layout_marginBottom,android:layout_marginLeft,android:layout_marginRight,android:layout_marginTop,RelativeLayout,TableLayout,是一种类似表格的布局,这种布局会把包含的元素以行和列进行排列。表格的列数为所有行中的最大列数;每一行可以是一个,TableRow,布局对象,也可以是普通的,View,对象,,TableRow,里面每一个元素占一列;,TableLayout,总列数由列数最多的那一行决定。,示例代码:,TableLayout,TableLayout,几个重要的属性:,collapseColumns,设置隐藏那些列,列,ID,从,0,开始,多个列的话用”,”,分隔,stretchColumns,设置自动伸展那些列,列,ID,从,0,开始,多个列的话用”,”,分隔,shrinkColumns-,设置自动收缩那些列,列,ID,从,0,开始,多个列的话用”,”,分隔,可以用”*”来表示所有列,同一列可以同时设置为,shrinkable,和,stretchable,。,TableRow,本身也是一个,Layout,,里面的元素会安装水平方向依次排列,如果,TableRow,的父元素不是,TableLayout,的话,那么他会表现的像一个,LinearLayout,。,TableLayout,FrameLayout,在屏幕上开辟了一块区域,在这块区域中可以添加多个子控件,但是所有的子控件都会被对齐到屏幕的左上角。,FrameLayout,的大小由其所添加的所有子控件中尺寸最大的那个
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!