android学习之 resources资源
2010-05-19 09:58
543 查看
android里的资源可以是一个文件(mp3,视频、音频)或者是一个值(一个对话框中的一个标题),这些值被绑定到一个可执行的应用程序。
这些文件和值被绑定到应用程序,你可以修改它们,但是不需要重新编译和重新部署应用程序。
android是一个平台,一个框架,这个框架包含许多资源,string、color、bitmap、style等。android的AAPT
会自动为这些文件建立一个ID,在程序中就可以以使用这些ID来引用这些resources,如果你想改某个值,只需要修改这些resource而不需要
修改源代码。
resources的使用
resoureces就是res目录下的那些目录和文件,常用的有:
res/drawable/ 用来存放图片文件
res/layout/ 用来存放布局定义文件
res/values/ 用来存放一些变量、参数等文件
android允许你定义多个string xml文件 这些resource位于/res/value目录下,文件名是任意的
这是一个普通的字符串资源文件
Xml代
码
当这个文件被创建或修改了,eclipse的adt插件会自动更新你源代码中一个叫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代
码
value可以只普通的字符串也可以是html代码,或者是包含单引号,双引号的字符串
Xml代
码
在其他的android xml文件中引用含有html标记的值和引用普通的string一样
Xml代
码
在java程序中应用这些值可以这样
Java
代码
dimension resources
android中定义的dimension单位有以下这些
px: pixel(像素)
in:inches(英寸)
mm:millimeter(毫米)
pt:point(点)
dp:density密度
sp:刻度
定义dimension可定义string一样
Xml代
码
你可以在style中或者定位android UI 中使用这些dimension资源
如果在java中需要使用这些dimensions可以调用getResources方法
Java
代码
在ml文件中使用dimension
Xml代
码
Image resource
android会为每个放置在res/drawable目录下的图片文件生成ID,ID就是这个图片的文件名,如果一个图片的名是
sample.gif那么就会在R.java文件中的drawable下生成
Java
代码
android支持的图片格式有:gif,jpg,png
在xml文件中使用image resource
Xml代
码
在java文件中通过调用getResources的getDrawable方法
Java
代码
在android中image是drawable资源的一种类型,android还支持其他的drawable
它叫color-drawable,它本质上是一个彩色矩形
它的定义如下
Xml代
码
Java中使用color-drawable
Java
代码
xml中使用color-drawable
Xml代
码
这些文件和值被绑定到应用程序,你可以修改它们,但是不需要重新编译和重新部署应用程序。
android是一个平台,一个框架,这个框架包含许多资源,string、color、bitmap、style等。android的AAPT
会自动为这些文件建立一个ID,在程序中就可以以使用这些ID来引用这些resources,如果你想改某个值,只需要修改这些resource而不需要
修改源代码。
resources的使用
resoureces就是res目录下的那些目录和文件,常用的有:
res/drawable/ 用来存放图片文件
res/layout/ 用来存放布局定义文件
res/values/ 用来存放一些变量、参数等文件
android允许你定义多个string xml文件 这些resource位于/res/value目录下,文件名是任意的
这是一个普通的字符串资源文件
Xml代
码
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, SendMessage!</string> <string name="app_name">SMS</string> </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, SendMessage!</string> <string name="app_name">SMS</string> </resources>
当这个文件被创建或修改了,eclipse的adt插件会自动更新你源代码中一个叫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代
码
<string name="key">value</string>
<string name="key">value</string>
value可以只普通的字符串也可以是html代码,或者是包含单引号,双引号的字符串
Xml代
码
<string name="quoted_string">"quoted'string"</string> <string name="double_quoted_string">/"double quotes/"</string> <string name="target_string">hello <b><i>android</i></b>,you are very younger!</string>
<string name="quoted_string">"quoted'string"</string> <string name="double_quoted_string">/"double quotes/"</string> <string name="target_string">hello <b><i>android</i></b>,you are very younger!</string>
在其他的android xml文件中引用含有html标记的值和引用普通的string一样
Xml代
码
<TextView android:text="@string/target_string" android:id="@+id/text3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<TextView android:text="@string/target_string" android:id="@+id/text3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
在java程序中应用这些值可以这样
Java
代码
this.getResources().getString(R.string.target_string);
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代
码
<resources> <dimen name="mysize_in_pixels">1px</dimen> <dimen name="mysize_in_dp">1dp</dimen> <dimen name="medium_size">100sp</dimen> </resources>
<resources> <dimen name="mysize_in_pixels">1px</dimen> <dimen name="mysize_in_dp">1dp</dimen> <dimen name="medium_size">100sp</dimen> </resources>
你可以在style中或者定位android UI 中使用这些dimension资源
如果在java中需要使用这些dimensions可以调用getResources方法
Java
代码
this.getResources().getDimension(R.dimen.mysize_in_pixels);
this.getResources().getDimension(R.dimen.mysize_in_pixels);
在ml文件中使用dimension
Xml代
码
<TextView android:text="@string/target_string" android:id="@+id/text3" android:layout_width="wrap_content" android:textSize="@dimen/medium_size" android:layout_height="wrap_content"></TextView>
<TextView android:text="@string/target_string" android:id="@+id/text3" android:layout_width="wrap_content" android:textSize="@dimen/medium_size" android:layout_height="wrap_content"></TextView>
Image resource
android会为每个放置在res/drawable目录下的图片文件生成ID,ID就是这个图片的文件名,如果一个图片的名是
sample.gif那么就会在R.java文件中的drawable下生成
Java
代码
public static final int sample=0x7f020001;
public static final int sample=0x7f020001;
android支持的图片格式有:gif,jpg,png
在xml文件中使用image resource
Xml代
码
<Button android:text="Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:background="@drawable/sample" android:layout_height="wrap_content"></Button>
<Button android:text="Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:background="@drawable/sample" android:layout_height="wrap_content"></Button>
在java文件中通过调用getResources的getDrawable方法
Java
代码
Drawable bitmap = this.getResources().getDrawable(R.drawable.sampe); Button button = (Button)findViewById(R.id.Button01); //给button设置一个背景图 button.setBackgroundDrawable(bitmap);
Drawable bitmap = this.getResources().getDrawable(R.drawable.sampe); Button button = (Button)findViewById(R.id.Button01); //给button设置一个背景图 button.setBackgroundDrawable(bitmap);
在android中image是drawable资源的一种类型,android还支持其他的drawable
它叫color-drawable,它本质上是一个彩色矩形
它的定义如下
Xml代
码
<resources> <drawable name="red_rectangle">#f00</drawable> <drawable name="blue_rectangle">#0000ff</drawable> <drawable name="green_rectangle">#f0f0</drawable> </resources>
<resources> <drawable name="red_rectangle">#f00</drawable> <drawable name="blue_rectangle">#0000ff</drawable> <drawable name="green_rectangle">#f0f0</drawable> </resources>
Java中使用color-drawable
Java
代码
// 取得drawable ColorDrawble redDrawable = (ColorDrawable)getResources().getDrawable(R.drawable.red_rectnagle); //设置textView的背景 textView.setBackground(redDrawable);
// 取得drawable ColorDrawble redDrawable = (ColorDrawable)getResources().getDrawable(R.drawable.red_rectnagle); //设置textView的背景 textView.setBackground(redDrawable);
xml中使用color-drawable
Xml代
码
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAlign="center" android:background="@drawable/red_rectangle"/>
相关文章推荐
- android学习之resources资源
- android学习之resources资源
- android学习之resources资源
- android学习之resources资源
- 从高德 SDK 学习 Android 动态加载资源
- Android的资源类型和存储方式简介-android学习之旅(五十二)
- Android-Resources-Hodgepodge(Android资源大杂烩)
- Android 你应该知道的学习资源 进阶之路贵在坚持
- Android下资源使用的方式-android学习之旅(五十三)
- android学习资源
- Android的图片,字符串,demin,color,以及Array,boolean,Integer资源的使用-android学习之旅(五十四)
- Android学习资源汇总
- Android_Android开发学习资源
- Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)
- Android引用资源(resources) vs 引用样式属性(style attribute)语法
- Android学习资源网站大全
- Android学习的各种资源集合
- Android 学习资源分享:官方示例Support-V7 Demos
- android 学习资源网址
- Android开发学习笔记(12):Android读取内部以及外部资源文件(更新中...)