android 有很多种类的资源,有7个是在res下新建目录然后将资源放在目录下:res/values,res/xml,res/layout,res/drawable,res/anim,res/menu,res/raw
还有一种是存放在res同级的目录assets目录下,也就是说大体上android资源种类有8类。
res/values : 存放字符串,颜色,尺寸,数组,主题,类型等资源。
res/xml : 可以是任意类型的xml文件,这些xml文件可以在运行时读取
res/layout:布局文件
res/drawable:图片(bmp,png,gif,jpg等)
res/anim: xml格式的动画资源 (帧动画 和 补间动画)
res/menu:菜单资源
res/raw:会封装在apk,但是不会被编译,可以放任意类型文件,一般存放比较大的音频,视频,图片,文档,会在R类
生成资源ID
assets:可以存放任意类型,不会被编译,与raw相比,不会在R类中生成资源ID
各种资源的使用:
使用系统资源:
android sdk中 提供了大量的系统资源使用这些系统资源(sdk安装目录\platforms\android-2.2\data\res)
通过android.R.resourceType.resourceId 的方式
resourceType表示资源类型:String,Color,Drawable等,resouceId表示资源Id
在代码中键入android.R.会显示系统定义的资源。
自己定义资源:
1.字符串资源(sring)
存放位置:res/values
存放方式:xml
存放示例:
<resources>
<string name="hello">你好</string>
</resources>
使用:
a.在layout文件中 =" @string/hello"
b.代码中 Activity实例的getString()方法
2.数组资源:(array)
存放位置:res/values
存放方式:xml
存放示例:
<resource>
<string-array name="arrays">
<item>
北京
</item>
<item>
长沙
</item>
</string-array>
使用:
String[] arrays = Activity实例的gerResources).getStringArray(R.array.arrays);
注意:除了字符串数组资源外还有数字数组资源<integer-array>但是 每一项元素的值值整数
3. 颜色资源(color)
存放位置:res/values
存放方式:xml
存放示例:
<resources>
<color name="blue_color">#0000FF</color>
</resources>
使用:
a.layout布局文件中
="@color/blue_color"
b.代码中
Activity实例的getResources().getColor(R.color.blue_color);
4.尺寸资源(dimension):
存放位置:res/values
存放方式:xml
存放示例:
<resource>
<dimen name="size_px">2px</dimen>
<dimen name="size_in">1.5in</dimen>
<dimen name="size_sp">30sp</dimen>
</resource>
使用:
a.layout布局文件中="@dimen/size_px"
b.代码中
Activity实例的getResouces().getDimension(R.dimen.size.in);
5.类型资源(style):
存放位置:res/values
存放方式:xml
存放示例:
<resource>
<style name="style1">
<item name="android:textSize">20dp </item>
<item name="android:textColor">#ffccff</item>
</style>
</resource>
使用:
style="@style/style1"
6.主题资源(theme):
存放位置:res/values
存放方式:xml
存放示例:
与style 类似
<resource>
<style name="theme1">
<item name="android:windowTitlesize" >20dp </item>
<item name="android:textColor">#ffccff</item>
</style>
</resource>
使用:
在Androidmanifest.xml文件中的<application>标签的或者<activity> 标签,android:theme = "@style/theme1"
7.绘画资源(drawable)
存放位置:res/drawable
存放方式:各种图片
使用:
a.layout布局文件中
="@drawable/img1";
b.代码中
Drawable drawable = getResources().getDrawable(R.drawable.img1);
8.RAW资源
存放位置:res/raw
存放方式:任意类型
使用:
InputStream is= getResources().openRawResource(R.raw.test);
9.ASSETS资源
存放位置:与res同级的assets目录下
存放方式:任意类型
使用:
InputStream is= getAssets().open("test.txt");
其他备用资源目录
mccAAA:AAA是移动设备国家代码
mncAAA:AAA是运营商/网络代码
en-rUS:语言和区域。
small、normal、large、xlarge:屏幕大小
long、notlong:屏幕类型
port、land:纵向或横向
car、desk:扩展坞类型
night、notnight:晚上或白天
ldpi、mdpi、hdpi、xhdpi、nodpi:屏幕像素密度
notouch、stylus、finger:屏幕种类
keysexposed、keyssoft、keyshidden:键盘类型
nokeys、qwerty、12key:键数
navexposed、nachidden:隐藏或显示导航键
nonav、dpad、trackball、wheel:导航设备类型
v3、v4、v7:API级别
如:
\res\layout-mcc312-mnc222-en-rUS
\res\layout-ldpi
\res\layout-hdpi
\res\layout-car