Android安卓——资源管理

本文详细介绍了Android应用中的资源管理,包括资源的映射、命名和访问方式。重点讲解了String、Color、尺寸(dimen)、Layout、array、Drawable和原始XML资源的使用方法和注意事项,旨在帮助开发者更好地管理和使用Android应用资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在安卓应用的开发过程中,代码、字符串、菜单、图像、声音、视频这些文件统称为资源。
他们都存储在资源文件(res/)下面。
此处在讲解了资源文件的相关知识后,着重介绍字符串、颜色、尺寸、布局、数组、资源、原始xml文件等。

一、资源简介

1、映射

Android应用中的所有资源,都将被编译成二进制的形式存放在Android应用中,每个资源都被赋予一个独一无二的int型的ID,资源在引用时将通过int型的ID而不是资源的名称。映射文件为R.java文件

2、命名

(1)资源命名要符合Java变量命名规范
(2)同类资源的文件名或变量名不能重复,因为同类资源的ID都被放在R的同一个内置类中,当然不允许有重名的类,同一个类中也不允许有重名的变量。
(3)由于在生成ID时并不考虑资源文件的扩展名,因此,在同一个资源类型的目录中不能存在文件名相同,扩展名不同的资源文件。

3、访问

1)引用自定义的资源
格式:@[package]type/name
@为资源引用的标志,package 为资源所在的包名,type为资源类型,允许的值为:layout、value 、drawable、string、color、menu、raw和xml等
例如:main.xml文件中对string资源hello引用代码如下

 android:text=“@string/hello”

(2) 引用系统资源
格式:@android:type/name

android:textColor=“@android:color/opaque_red

(3) R.java 中如何访问资源
格式:R.type.name
例如,需要引用string资源hello,对应的代码

R.string.hello

也可以引用android系统资源,只不过要在R的前面加上包名android。
例如

setBackground(android.R.color.darker_gray)

二、常用的资源类型

1、String字符串
  • 字符串资源文件文件位于res/values目录下的strings.xml
<resources>
      <string name=“hello”> Hello World!</string>
      <string name=“app_name”>xtt's app</string>
  </resource>

1)在Java文件中使用字符串资源的语法格式为:[.]R.string.字符串名
2)在XML文件中使用字符串资源的基本语法格式为:@[:]string/字符串名

注意:
1、转义字符的使用。
2、如果在String资源中包含动态参数,需要使用“%编号$s”来作为参数的占为符号,其中*代表参数的编号,从1开始计数。

<string name="format_string">
Hello %2$s ha ha. %1$s again 
</string>

要引用上面声明的String资源,需要使用String类的format 方法
String temp = this.getString(R.string.format_string);
String substitutedString = String.format(temp,"Hello","Android");

结果为:Hello Android ha ha.Hello again

2、Color颜色
  • 颜色资源文件位于res/values目录下,一般命名为color.xml
<resources>
      <color name=“pink”>    </string>
</resource>

使用方法跟String相同

3、dimen尺寸
  • 尺寸资源文件位于res/values目录下
<resources>
      <dimen name=“chicun”> 16dp</string>
</resource>

使用方法跟String相同。
此处常用于设置备用资源(为了支持特定的设备)在 res/ 中创建一个以<resources_name> -<config_qualifier> 形式命名的新目录。

4、Layout布局
  • 布局资源文件放置在res/layout目录下
    使用方法跟String相同。
5、array数组
  • 数组资源文件位于res/values/arrays.xml文件中
    <resources></resources>标记,在该元素中,包括以下3个子元素。
    <array />子元素:用于定义普通类型的数组。
    <integer-array />子元素,用于定义整数数组。
    <string-array />子元素,用于定义字符串数组。
    使用数组资源跟String相同,不同的是
String[] temp = getResources().getStringArray(R.array.select_dialog_items);
6、Drawable资源
  • 资源文件位于res/drawable文件夹中。
  • 主要保存图片资源等。
  • 于String的使用方法相同。
7、原始XML资源
  • 一般保存在res/xml目录下。
  • 通过Resources.getXml()方法来访问。
  • 此处的XML文件是指格式良好,无特殊要求的普通XML文件
    此处给出一个使用的例子:
<words>    
<word value="lorem" />    
<word value="ipsum" />    
<word value="dolor" />
</words>
XmlPullParser xmlPullParser= getResources().getXml(R.xml.words);//解析器
try {    
while (xmlPullParser.getEventType()!=XmlPullParser.END_DOCUMENT){//判断是否能达文档结尾        
if(xmlPullParser.getEventType()==XmlPullParser.START_TAG){//判断是否是元素的起始标志            
if(xmlPullParser.getName().equals("word")){//判断元素名称                Log.d(ResourceActivity.class.toString(),xmlPullParser.getAttributeValue(0));//取得属性值            
}        
}        
xmlPullParser.next();    
}}catch (Exception e){    
e.printStackTrace();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值