1、资源包括:文本字符串、图像和图标、音频文件、视频和其他应用程序使用的组件。

2、在Android工程中,Android资源文件是同Java类文件分开存储的,大多数常见的资源类型存储在XML中。你也可以将原始数据文件和图形作为资源来存储。

3、Eclipse下默认的Android资源目录

资源子目录

说明

/res/drawable

图形资源

/res/layout

用户界面资源,Widget

/res/values

简单数据,如字符串、颜色值

说明:当你向工程资源目录/res中加入新的资源时,插件将会探测到并自动使用AAPT工具在后台编译这一资源,以便能在应用程序中访问它。

4、资源文件的类型

资源文件存储在Android工程的/res目录下,并且严格(理由充分时可以更改)存储于各自的子目录和文件中。资源文件的名称必须为小写且要求简单(仅由字母、数字和下划线构成)

资源类型

所需目录

文件名

适合的关键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/

例如:img.png、img.jpg、等

支持的图形文件或xml文件定义的drawable图形

动画序列(补间)

/res/anim/

如:fancy_animl.xml、

more_options.xml

<set><alpha><scale>

<translate><rotate>

菜单文件

/res/menu/

如、my_menu1.xml

<menu>

XML文件

/res/xml/

如、some.xml

由开发人员自己定义

原始文件

/res/raw/

如、some_audio.mp3

main_video.mp4、some_text.txt

布局文件

/res/layout/

如、start_screen.xml

多种定义

样式和主题

/res/values/

styles.xml、themes.xml

<style>

注意:某些资源文件,如:动画文件和图形,是根据它们自己的文件名来引用的,所以要适当地对它们进行命名。R.drawable.flag

5、存储不同的资源文件时,需要注意事项:

1>存储String类型的文件。每一个xml文件都要包含:

<?xml version="1.0"encoding="utf-8"?>

<resources>

里面可以是:<string>、<color>等

</resources>

2>存储图形、动画、菜单和文件

可以图形、动画、菜单、文件任意的xml文件和原始文件作为资源来存储,这些资源不存储在/res/values/下,而是存储在不同的文件夹下。

6、引用资源文件

String myString = getResources().getString(R.string.string标签标签name属性的名字);

int myColor = getResources().getColor(R.color.color标签name属性的名字);

float myDimen =getResources().getDimension(R.dimen.dimen标签name属性的名字);

1>使用String(字符串)的资源

在xml文件中使用String资源时,在包含撇号或单引号的字符串需要进行转移或使用双引号括起来。

strings.xml格式如下

<?xmlversion="1.0"encoding="utf-8"?>

<resources>

<stringname="hello">Hello World, MainActivity!</string>

<stringname="app_name">开始学习Android知识</string>

</resources>

(1)、对于字符串资源,可以加入三种具有HTML风格的属性:<b>、<i>、<u>分别表示加粗、斜线和下划线。

<stringname="txt"><b>加粗</b>,<i>斜线</i>、<u>下划线</u></string>

(2)、使用格式化的字符串

创建带有格式化的字符串,但是你需要加粗、斜体和下划线进行转义。

<stringname="winLose">Score:%1$d of %2$d! You %3$d.</string>

<stringname="winLoseStyled">Score: %1$d of %2$d ! you&amp;lt;i&gt;%3$s&amp;lt/i&gt;.</string>

引用:

使用下面的格式的格式会将HTML风格属性从字符串中被剔除

StringmyStrHello= getResources().getString(R.string.txt);

CharSequencemyBoldStr= getResources().getText(R.string.hello);

载入一个格式化得字符串(需要确保所有的格式变量都已经被转义):

String resultText = String.format(myStrHello, 5,5,escapeWin);

在Activity中引用字符串数组:

strings.xml文件中的内容:

<string-arrayname="flavors">

<item>Vanilla</item>

<item>Chocolate</item>

<item>Strawberry</item>

</string-array>

Activity中的代码:String aFlavors[] = getResources().getStringArray(R.array.flavors);

2>使用颜色(RGB颜色值)

RGB颜色值始终以”#”开头,另外可以给出alpha控制透明度,

<?xmlversion="1.0"encoding="utf-8"?>

<resources>

<colorname="text_color">#F00</color>

</resources>

颜色资源事实上是一个整数。

3>使用尺寸

测量单位

说明

所需的资源标记

示例

像素

实际的屏幕像素

px

20px

英寸

物理测量单位

in

2in

毫米

物理测量单位

mm

2mm

普通字体测量单位

pt

14pt

密度独立像素(density-independent pixels)

相对于160dpi屏幕的像素

dp

2dp

比例独立像素(scale-independent pixels)

对于字体显示的测量

sp

14sp

注意:英寸是长度单位。1英寸=2.539999918厘米(公分)

尺寸资源实际上是最简单的浮点值。

float myDimen = getResources().getDimension(R.dimen.dimen标签name属性的名字);

4>使用简单的Drawable资源

使用Drawable资源类指定一个简单的带颜色矩形。

<?xmlversion="1.0"encoding="UTF-8"?>

<resources>

<drawablename="red_rect">#F00</drawable>

</resources>

引用:

ColorDrawable myDraw = (ColorDrawable)getResources().getDrawable(R.drawable.red_rect);

5>使用图像

支持的图像

说明

扩展名

便携式网络图像

推荐的格式(无损)

.png

9格拉伸图像

推荐的格式(无损)

.9.png

联合图像专家组

可接受的格式(有损)

.jpg .jpeg

图形交换格式

不鼓励的格式

.gif

(1)使用9格拉伸图像

手机屏幕拥有各种不同的尺寸,想象一个可以根据不同的屏幕尺寸和方向或者不同长度的文字调整大小的图像。它是非常方便而适用。

使用步骤:

A、运行Android SDK Tools --àdraw9patch.bat文件

B、将一个png文件拖入左侧的面板中

C、选中左侧底部的Showpatches【斑点】

D、将Patch scale设置为合适的值(比能够看见标记结果值稍大)

E、沿着图像的右边沿单击,以设置水平“格”引导

F、沿着图像的上边沿单击,以设置垂直“格”引导

G、在右侧面板中查看结果,移动“格”导引知道图像按照预期的结果进行拉伸。

H、要删除一个“格”导引,按住“Shift”键在导引的像素(黑色)上点击即可。

I、.9.png为扩展名保存图像。

(2)通过程序引用

图像资源(BitmapDrawable):通过ID即可设定用户界面Widget的属性。

A、如果你把flag.png放入/res/drawable目录中,并且向主布局中加入ImageView Widget

ImageView flagImageView = (ImageView)findViewById(R.id.imageView01);

flagImageView.setImageResource(R.drawable.icon);

B、直接访问BitmapDrawable对象

BitmapDrawable bitmapFlag = (BitmapDrawable)getResources().getDrawable(R.drawable.icon);

int iBitmapHeightInPixels = bitmapFlag.getIntrinsicHeight();

int iBitmapWidthInPixels = bitmapFlag.getIntrinsicWidth();

C、使用九格图像

调用getDrawable方法返回一个NinePatchDrawable对象。

和BitmapDrawable使用类似

6>使用菜单

更多相关文章

  1. Android(安卓)引用外部字体
  2. android 抛出“Unparsed aapt error(s)”
  3. Android读写XML(下)――创建XML文档
  4. Android(安卓)的视频编码 H263 MP4V H264
  5. Android(安卓)动态logo bootanimation.zip 制作
  6. Android(安卓)HAL 介绍
  7. android 5.1 添加自定义的SystemServer服务
  8. Android之NDK开发
  9. NPM 和webpack 的基础使用

随机推荐

  1. android + PHP 实现消息推送(采用MQTT协议
  2. 如何调用android通讯录?
  3. duplicate entry: android/support/v4/in
  4. android 加载进度条动画
  5. android alarm相关信息
  6. Android(安卓)时间戳和时间之间的转化
  7. android segment fault logcat相关信息分
  8. [Android(安卓)UI界面] 怎样实现ListView
  9. Android存储设备管理
  10. android实现虚拟按键实例