android之resources资源

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. <?xml version="1.0" encoding="utf-8"?>  

2. <resources>  

3.     <string name="hello">Hello World, SendMessage!</string>  

4.     <string name="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. <string name="key">value</string>  



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

Xml代码  

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

2.    <string name="double_quoted_string">\"double quotes\"</string>  

3.    <string name="target_string">hello <b><i>android</i></b>,you are very younger!</string>  



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

Xml代码  

1. <TextView  android: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.   <dimen name="mysize_in_pixels">1px</dimen>  

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

4.   <dimen name="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. <TextView  android: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. public static final int sample=0x7f020001;  


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

xml文件中使用image resource 

Xml代码  

1.       

2. <Button android: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. Drawable bitmap = this.getResources().getDrawable(R.drawable.sampe);  

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

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

4.         button.setBackgroundDrawable(bitmap);  



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

它的定义如下 

Xml代码  

1. <resources>  

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

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

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

5. </resources>  


Java
中使用color-drawable 

Java代码  

1. // 取得drawable  

2. ColorDrawble redDrawable =   

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

4. //设置textView的背景  

5. textView.setBackground(redDrawable);  



xml
中使用color-drawable 

Xml代码  

1. <TextView android:layout_width="fill_parent"  

2.           android:layout_height="wrap_content"  

3.           android:textAlign="center"  

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值