8.1.Android中对资源文件的支持
Android支持像图片和某些XML配置文件之类的资源,将它们从源代码分离出来。
这些资源必须根据它们的用途在res目录下的特定文件中定义。你也可以对文件名增加额外的筛选来表明这些相关资源被用于特定的配置,例如你可以指定一个资源只对特定的屏幕尺寸有效。
下面的表格给出了支持资源和它们标准文档前缀概览。
表格 1.资源
资源 | 文档 | 简介 |
简单的值 | /res/values | 用于定义字符串,颜色,尺寸,样式和整数的静态数组。通过转化每种类型保存在不同的文件,例如字符串定义在res/values/strings.xml文件。 |
外观 | /res/values | 用于定义活动和Fragments的用户界面的XML文件和外观表述文件。 |
样式和主题 | /res/values | 定义了Android应用外观的文件。 |
动画 | /res/animator | 在XML中为动画API允许随时间转变物体的任意属性定义属性。 |
菜单 | /res/menu | 为一个菜单定义项目的属性 |
Android项目中gen文件夹包含了生成的值。R.java是包含了这个项目具体资源的特定引用的生成类。
如果你创建了一个新资源,相应的引用会通过Eclipse ADT工具在R.java中自动生成。这些引用是静态的整数值和资源的定义ID。
例如访问用R.string.youString ID来访问字符串,你可以使用getString(R.string.yourString)方法。
Eclipse开发环境自动生成R.java,不需要手动更改,并且会被工具自动覆盖。
8.2. 定义IDs
Android允许你在外观文件中通过@+id/your_id标记来动态地定义用户界面组件的ID。
你也可以在/res/values中新建一个名为ids.xml的文件和定义这个文件中所有IDs来控制你的IDs。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="button1" type="id"/>
</resources>
在你的外观文件中直接使用ID是允许的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginRight="27dp"
android:text="Button" />
</RelativeLayout>