Android中的资源文件

本文详细介绍了Android中的资源文件,包括存放位置、生成ID的方式、在XML文件中的标签及如何在程序中使用等内容。同时,还提供了关于assets文件夹的使用说明。

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

最近复习Android资源文件的内容,留下点记录以备后用。

Android中的资源主要是指存放在应用程序或者Framework相应包下/res中的内容。它们可以被本地化,如果必要的话会被编译成二进制文件以节约空间,并且,Eclipse开发环境可以为这些内容生成ID,存放在R.java文件中,以便程序内或其他XML文件中引用。/res文件夹只有固定的一些子目录结构,不能支持多层文件结构。

把一些最基本的内容列表如下。

 

资源类型

存放位置

生成ID的方式

在XML文件中的标签

在程序中使用

备注

颜色值

/res/values

R.color,每个标签单独生成

color

 

resources.getColor(R.color.name);

 

 

字符串

/res/values

R.string,

每个标签单独生成

string

 

resources.getString(R.string.name);
resources.getText(R.string.name);

两种使用方法的区别是,后者返回本地化且包含样式的字符串。

字符串数组

/res/values

R.array,每个标签单独生成

string-array

 

resources.getStringArray(R.array.name);
resources.getTextArray(R.array.name);

 

两种使用方法区别同上。

数量字符串

/res/values

R.plurals,每个标签单独生成

plurals

 

resources.getQuantityString(R.plurals.name);
resources.getQuantityText(R.plurals.name);

用来描述单复数对名词造成的区别。两种用法区别同上。

尺寸

/res/values

R.dimen,每个标签单独生成

dimen

 

float size = 
resources.getDimension(R.dimen.name);

 

注意各种单位的区别。

图片

/res/drawable

R.drawable,每个文件单独生成

N/A

 

BitmapDrawable d = 
(BitmapDrawble)(resources.
getDrawable(R.drawable.name));

 

有gif、jpg、png、9.png等类型。

矩形颜色块

/res/values或/res/drawable

R.drawable,每个标签单独生成

drawable

 

ColorDrawable c = 
(ColorDrawable)(resources.
getDrawable(R.drawable.name));

 

 

圆角矩形

/res/value或/res/drawable

R.drawable,每个文件单独生成

shape

 

GradiantDrawable roundedRectangle =
(GradientDrawable)(resources.
getDrawable(R.drawable.name));

 

 

布局

/res/layout

R.layout,每个文件单独生成

LinearLayout、FrameLayout、RelativeLayout等等

 

setContentView(R.layout.layoutName);
View view = findViewById(R.id.viewName);

 

setContentView决定当前Activity用哪个布局文件,在此调用之后方可以使用findViewById来获取某个控件的引用。

任意xml

/res/xml

R.xml,每个文件单独生成

N/A

 

XmlResourceParser parser =
Resources.getXml(R.xml.name);

 

 

任意其他资源

/res/raw

R.raw,每个文件单独生成

N/A

 

InputStream is =
Resources.openRawResources(R.raw.name);

 

 

 

 

除此之外,Android应用中还有一个assets文件夹,其中可以存放任意的文件夹结构和文件,不会被编译或者本地化。使用时需要:

AssetManager am = myActivity.getAssets();
InputStream is = am.open(filePathRelativeToAssetFolder);
// Do something to is
is.close();

 

 

转载于:https://www.cnblogs.com/jehovah0121/p/3489777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值