Android学习笔记之android应用资源
一.Android应用资源存储
二.使用资源
在android应用中使用资源可分为在Java代码和XML文件中使用资源。
1.在java代码中使用资源清单项
[<package_name>.]R.<resource_type>.<resource_name>
如:
R.drawable.back
R.string.main_title
R.id.msg
2.在java代码中访问实际资源
可以借助于Android提供的Resources类
Resource主要提供了如下两类方法:
getxxx(int id):根据资源清单ID来获取实际资源;
getAssets():获取访问/assets/目录下资源的AssetManager对象;
Resource由Context调用getResources()方法来获取。
//直接调用Activity的getResource()方法来获取Resource对象
Resource res = getResources();
//获取字符串资源
String mainTitle = res.getText(R.string.main_title);
//获取Drawable资源
Drawable logo = res.getDrawable(R.drawable.logo);
//获取数组资源
int [] arr = res.getIntArray(R.array.books);
3.在XML文件中使用资源
@[<package_name>:]<resource_type>/<resource_name>
如
//定义
<color name="red">#ff00</color>
<string name="hello">Hello</string>
//使用
android:textColor="@color/red"
android:text="@string/hello"
4.数组(Array)资源
app/src/main/res/values
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 定义一个Drawable数组 -->
<array name="plain_arr">
<item>@color/c1</item>
<item>@color/c2</item>
<item>@color/c3</item>
<item>@color/c4</item>
<item>@color/c5</item>
<item>@color/c6</item>
<item>@color/c7</item>
<item>@color/c8</item>
<item>@color/c9</item>
</array>
<!-- 定义字符串数组 -->
<string-array name="string_arr">
<item>@string/c1</item>
<item>@string/c2</item>
<item>@string/c3</item>
<item>@string/c4</item>
<item>@string/c5</item>
<item>@string/c6</item>
<item>@string/c7</item>
<item>@string/c8</item>
<item>@string/c9</item>
</string-array>
<!-- 定义字符串数组 -->
<string-array name="books">
<item>疯狂Java讲义</item>
<item>疯狂Ajax讲义</item>
<item>疯狂Android讲义</item>
</string-array>
</resources>
接下来在xml文件中可以直接使用数组
android:entries="@array/books"
在java代码中可以直接使用
String[] texts;
texts = getResources().getStringArray(R.array.string_arr);
三.自适应不同屏幕的资源
xlarge屏幕尺寸至少需要960dpx720dp
large屏幕尺寸至少需要640dpx480dp
normal屏幕尺寸至少需要470dpx320dp
small屏幕尺寸至少需要426dpx320dp
最简单的做法为适应不同屏幕的资源,最简单的做法就是为不同屏幕尺寸,不同屏幕分辨率提供相应的布局资源,Drawable资源。