android里的资源可以是一个文件(mp3,视频、音频)或者是一个值(一个对话框中的一个标题),这些值被绑定到一个可执行的应用程序。

这些文件和值被绑定到应用程序,你可以修改它们,但是不需要重新编译和重新部署应用程序。

android
是一个平台,一个框架,这个框架包含许多资源,stringcolorbitmapstyle等。androidAAPT会自动为这些文件建立一个ID,在程序中就可以以使用这些ID来引用这些resources,如果你想改某个值,只需要修改这些resource而不需要修改源代码。



resources的使用

resoureces
就是res目录下的那些目录和文件,常用的有:


res/drawable/
用来存放图片文件

res/layout/
用来存放布局定义文件

res/values/
用来存放一些变量、参数等文件


android
允许你定义多个string xml文件 这些resource位于/res/value目录下,文件名是任意的

这是一个普通的字符串资源文件

Xml代码

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

2. <resources>

3. <stringname="hello">HelloWorld,SendMessage!</string>

4. <stringname="app_name">SMS</string>

5. </resources>



当这个文件被创建或修改了,eclipseadt插件会自动更新你源代码中一个叫R.java的文件
R.java
R.java的注释部分, 有这样一段话:“AUTO-GENERATE FILE. DO NOT MODIFY”,这个文件是自动生成的,不要修改。

这个文件是在程序编译过程中由aapt(Android Asset Packaging Tool) 自动生成

这个文件中的属性都是public static final的,所以可以直接在Java代码中引用,每个属性都代表一个资源,看起来就像为每个资源都定义了一个ID,然后通过这个ID来访问资源

所有的资源文件都被编译进最后生成的二进制包中,这样能够带来很高的性能和效率


string
的定义非常简单

Xml代码

1. <stringname="key">value</string>



value
可以只普通的字符串也可以是html代码,或者是包含单引号,双引号的字符串

Xml代码

1. <stringname="quoted_string">"quoted'string"</string>

2. <stringname="double_quoted_string">\"doublequotes\"</string>

3. <stringname="target_string">hello<b><i>android</i></b>,youareveryyounger!</string>



在其他的android xml文件中引用含有html标记的值和引用普通的string一样

Xml代码

1. <TextViewandroid:text="@string/target_string"

2. android:id="@+id/text3"

3. android:layout_width="wrap_content"

4. android:layout_height="wrap_content"></TextView>


java程序中应用这些值可以这样

Java代码

1. this.getResources().getString(R.string.target_string);




dimension resources

android
中定义的dimension单位有以下这些
px: pixel(
像素
)
in:inches(
英寸
)
mm:millimeter(
毫米
)
pt:point(
)
dp:density
密度

sp:
刻度

定义dimension可定义string一样

Xml代码

1. <resources>

2. <dimenname="mysize_in_pixels">1px</dimen>

3. <dimenname="mysize_in_dp">1dp</dimen>

4. <dimenname="medium_size">100sp</dimen>

5.

6. </resources>



你可以在style中或者定位android UI 中使用这些dimension资源

如果在java中需要使用这些dimensions可以调用getResources方法

Java代码

1. this.getResources().getDimension(R.dimen.mysize_in_pixels);



ml文件中使用dimension

Xml代码

1. <TextViewandroid:text="@string/target_string"

2. android:id="@+id/text3"

3. android:layout_width="wrap_content"

4. android:textSize="@dimen/medium_size"android:layout_height="wrap_content"></TextView>



Image resource

android
会为每个放置在res/drawable目录下的图片文件生成IDID就是这个图片的文件名,如果一个图片的名是sample.gif那么就会在R.java文件中的drawable下生成

Java代码

1. publicstaticfinalintsample=0x7f020001;


android
支持的图片格式有:gif,jpg,png

xml文件中使用image resource

Xml代码

1.

2. <Buttonandroid:text="Button01"

3. android:id="@+id/Button01"

4. android:layout_width="wrap_content"

5. android:background="@drawable/sample"

6. android:layout_height="wrap_content"></Button>



java文件中通过调用getResourcesgetDrawable方法

Java代码

1. Drawablebitmap=this.getResources().getDrawable(R.drawable.sampe);

2. Buttonbutton=(Button)findViewById(R.id.Button01);

3. //button设置一个背景图

4. button.setBackgroundDrawable(bitmap);



androidimagedrawable资源的一种类型,android还支持其他的drawable
它叫color-drawable,它本质上是一个彩色矩形


它的定义如下

Xml代码

1. <resources>

2. <drawablename="red_rectangle">#f00</drawable>

3. <drawablename="blue_rectangle">#0000ff</drawable>

4. <drawablename="green_rectangle">#f0f0</drawable>

5. </resources>


Java
中使用color-drawable

Java代码

1. //取得drawable

2. ColorDrawbleredDrawable=

3. (ColorDrawable)getResources().getDrawable(R.drawable.red_rectnagle);

4. //设置textView的背景

5. textView.setBackground(redDrawable);



xml
中使用color-drawable

Xml代码

1. <TextViewandroid:layout_width="fill_parent"

2. android:layout_height="wrap_content"

3. android:textAlign="center"

4. android:background="@drawable/red_rectangle"/>

更多相关文章

  1. Mac上非常好用的免费的Android文件传输工具
  2. Android遍历获取Office格式(Word,Excel,PPT,PDF)的文件并打开
  3. Android使用xutils3框架实现应用程序内的检查更新下载服务器存放
  4. Android学习日记----------Android 10调用摄像头闪退问题---《第

随机推荐

  1. ANDROID Porting系列四、建立公开密钥和
  2. Android中android:id="@id/变量名"和andr
  3. 为什么说android UI操作不是线程安全的
  4. Android接入支付宝实现支付功能
  5. android 开源项目集锦
  6. Android中WebView载入本地HTML代码并实现
  7. 控件事件android中自定义控件
  8. Android(安卓)中的长度单位详解
  9. Android(安卓)tips(九)-->Android录屏与转
  10. Android处理图片OOM的若干方法小结