您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 手机/mobile开发 > Android界面Layout介绍
Android应用开发203界面Layout介绍•资源文件的管理•LayoutXML•LinearLayout•RelativeLayout•TableLayout•FrameLayout•AbsoluteLayout•自定义Layout•Android切换多个layout界面3首先介绍一下andorid的资源文件,认识这些资源文件对以后开发是必要的。所有的Android应用程序都由两部分组成:功能代码和资源。功能代码决定应用程序的行为,它包括让应用程序得以运行的所有算法。资源包括文本字符串、图像和图标、音频文件、视频和其他应用程序使用的组件。如果我们使用ADT开发的话,它为我们在后台自动调用AAPT编译资源,我们就可以省了很多事。不然的话,我们得使用AAPT自己去编译资源了。本文使用的是eclipse+ADT开发环境。资源目录截图如下图所示。资源文件的管理在res目录下的都是资源文件,用的多的是layout、values、drawable等。资源目录的层级结构如下表所示,表中显示了AndroidSDK支持的资源类型以及它们在工程中的存储方式。资源文件的管理资源类型所需的目录文件名适用的关键XML元素字符串/res/values/strings.xml(推荐)string字符串数组/res/values/arrays.xml(推荐)string-array颜色值/res/values/colors.xml(推荐)color尺寸/res/values/dimens.xml(推荐)dimen简单Drawable图形/res/values/drawables.xml(推荐)drawable位图图像/res/drawable/例:.png,.jpg,red_oval.xml等等支持的图形文件或XML文件定义的Drawable图形动画序列(补间)/res/anim/例:fancy_anim.xml等等set、alpha、scale、rotate等菜单文件/res/menu/例:my_menu.xmlmenuXML文件/res/xml/例:some.xml由开发人员定义原始文件/res/raw/例:xx.mp3,yy.txt等等布局文件/res/layout/例:main.xml等样式和主题/res/values/例:themes.xmlstyleAAPT贯穿所有在/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的位置。LayoutXMLstyle.xml简介:有时候我们不满足于系统控件的外观要改变一些背景,文字颜色等,这些属性可以在代码里更改,随便哪种控件,我们点.,后面会出来一大串set开头的方法。但是在代码里这样改来改去还是比较麻烦的,如果同样的控件多了,重复的代码也比较多。控件的这些属性也是可以在xml文件里改的,同样的控件多了,还是会带来代码的重复。这里我们就可以用设置控件样式的方法了。下面以EditText控件为例来说明如何来设置一个控件的样式。第一步:建立一个新的工程,在main布局里面建立三个EditText控件。第二步:在工程的res/values文件夹下新建一个xml文件内容如下:–?xmlversion=1.0encoding=utf-8?–resources–stylename=et1parent=@android:style/Widget.EditText–itemname=android:background#1A4EA4/item–itemname=android:textColor#FFF111/item–/style–stylename=et2parent=@android:style/Widget.EditText–itemname=android:background#A6C60F/item–itemname=android:textColor#EC02C3/item–/style–/resourcesLayoutXML说明:这里建立了两种样式,从字面意思上可以看出这两种样式分别都更改了背景颜色和文字颜色,一个控件可以更改的属性有很多,这里只改了两个,要改其它的属性,我们要知道属性的name才可以改。那所有的属性的名字在哪呢?找了一番终于找到了,所有的属性的名字在一个attrs.xml文件里。这个文件存在于:androidsdk安装目录\platforms\android-x\data\res\values目录下,找到这个文件以后我们改某些属性时可以做为查看的资料了。上面的两个样式中,都有一个parent属性。这就不难理解style是可以继承的。在这里我们继承的是系统默认的EditText属性,只修改了背景和文字颜色而已。那系统的EditText样式是在哪定义的呢?找了一番终于也找到了,所有系统控件的样式是在一个style.xml文件中,这个文件也在上面说的那个目录下。里面我们可以找到Widget.EditText的样式定义。有了它我们也可以查看某一种控件可以更改哪些样式了。在设置style时,我们经常用到@和?@表明引用的资源是在一个项目或是系统框架中定义过的。?表明引用的资源是在当前的主题定义过的。上面的设置背景中的值除了可以是颜色的值外,还可以是一个图片的引用。第三步:我们修改main布局文件中EditText的属性。为了对比,我们将第一个属性不做改变,第二个的style属性设为我们上面建立的name为et1的样式。第三个的style属性设为我们上面建立的name为et2的样式,代码如下:LayoutXML–?xmlversion=1.0encoding=utf-8?–LinearLayoutxmlns:android=–android:layout_width=fill_parent–android:layout_height=fill_parent–android:orientation=vertical–EditTextandroid:layout_width=fill_parent–android:layout_height=wrap_content–android:text=默认样式–android:id=@+id/et1–/EditText–EditTextandroid:layout_width=fill_parent–android:id=@+id/et2–android:text=自定义样式一–android:layout_height=wrap_content–style=@style/et1–/EditText–EditTextandroid:layout_width=fill_parent–android:id=@+id/et3–android:text=自定义样式二–android:layout_height=wrap_content–style=@style/et2–/EditText–Buttonandroid:text=改变主题–android:id=@+id/btn1–android:layout_width=fill_parent–android:layout_height=wrap_content–/Button–/LinearLayoutLayoutXML下面是截图:LayoutXMLLayoutXMLstrings.xml简介:开发人员可以通过手工编写资源的XML文件,使用AAPT编译它们并生成R.java文件来定义简单的资源,推荐使用ADT插件。创建完工程后,在Eclipse中定位至/res/values/strings.xml文件,双击可以编辑它。我们可以使用Resources标签下的Add按钮添加几个资源。也可以切换到源文件编辑模式。定义的如下:–?xmlversion=1.0encoding=utf-8?–resources–stringname=helloHelloWorld,ActivityIntent!/string–stringname=app_nameActivityIntent/string–stringname=promptTheActivityandTheIntenttest!/string–stringname=myButton测试/string–stringname=other另一个Activity/string–stringname=dialBtn电话按钮/string–/resources个人认为,统一界面风格的时候可以用到,比如,我们把按钮btnOK的全部显示为“确定”,所有的按钮的宽度和高度设置好,可以定义这样一些的节点–stringname=btnOK确定/string–stringname=btnWidht100px/string–stringname=btnHeigh25px/stringLayoutXML这样,我们在定义界面的时候,可以这样写:–Buttonandroid:text=@string/btnOK–android:id=@+id/btnOK//(注意这里的@+id/btnok,在R.java中有对应的ID,以后编写代码文件的时候,需要用到。)–android:layout_width=@string/btnWidth–android:layout_height=@string/btnHeigh–android:gravity=center–/Button保存Strings.xml文件。Eclipse插件将自动在你的工程中生成R.java文件,并含有适当的资源ID,以供编译之后使用程序访问这些资源。如果你定位到/gen/目录下的R.java文件,你可以看到:(所有的资源文件,都在R.java里面有对应)资源的读取当我们创建好资源并保存后,我们就可以在程序通过资源的ID来使用资源了。比如说,我们获取资源ID为hello的内容:–Stringstr=getResources().getString(R.string.hello);它的用法很简单:在LinearLayout里面的控件,以垂直或水平的方向,按照相对位置来排列所有的控件(包括所有的widgets和containers)。如果LinearLayout设置成为垂直,那么每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。示例代码:–LinearLayout–xmlns:Android=
本文标题:Android界面Layout介绍
链接地址:https://www.777doc.com/doc-7027071 .html