学习Android开发2:资源文件(res)

一个好的应用还包括很多静态的内容,例如,图片、布局定义、一些常量字符串和其他资源。本帖学习怎么组织Android应用使用的资源。

项目的res/目录时存在资源的地方,大概的样子:

目录

资源类型

anim/

定义动画的xml文件,保存在 res/anim/ 目录,可以通过 R.anim 类访问

color/

定义颜色的xml文件,保存在 res/color/ 目录, 通过 R.color 类访问

drawable/

保存 .png, .jpg, .gif 的图像文件,保存在 res/drawable/ 目录,通过 R.drawable 类访问

layout/

定义用户界面布局的xml文件,保存在 res/layout/ 目录,通过 R.layout 类访问

menu/

定义应用菜单的xml文件,保存在 res/menu/ 目录,通过 R.menu 类访问

raw/

保存原始文件格式,你需要调用 Resources.openRawResource() 来打开原始文件格式,参数是资源ID- R.raw.filename 

values/

定义简单值的xml文件,例如 字符串、整数和颜色。例如:

  • arrays.xml 资源数组, 通过 R.array 类访问
  • integers.xml 整型数据,通过 R.integer 类访问
  • bools.xml bool数据,通过 R.bool 类访问
  • colors.xml 颜色数据, 通过 R.color 类访问
  • dimens.xml 多维数据,通过 R.dimen 类访问
  • strings.xml 字符串常量, 通过 R.string 类访问
  • styles.xml 样式,通过 R.style 类访问

xml/

纯粹的xml文件,通过 Resources.getXML() 访问

其他资源

你的应用应该包含支持特定设备的其他资源,例如,你要为不同设备(屏幕分辨率)使用不同分辨率的图像、根据语言适配对应的字符串资源。在运行时,Android会监测当前设备的配置然后为你的应用加载合适的资源。

例如:

访问资源

在应用的开发过程中你需要访问定义的资源。有两种方法:一,直接使用代码;二,使用布局xml文件。

使用代码访问资源

当编译Android应用时会自动生成一个R类,这个类中的ID是根据res/资源生成的,可以使用R类访问rest中的资源。

例,你要访问 res/drawable/myimage.png 文件,代码如下:

第一行代码通过布局文件定义的ID(myimageview)获得ImageView。第二行代码通过文件路径获得图像。

例,你有 res/values/strings.xml 文件:

你可以通过资源ID(msg)设置TextView文本:

例,有如下布局文件(res/layout/activity_main.xml):

Activity使用这个布局文件:

通过xml访问资源

有xml文件 res/values/strings.xml,内容如下:

在布局文件中使用上面定义的颜色和字符串:

上面xml等同如下代码:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注