本文介绍在Android开发中关于资源文件的存储操作。对于Android资源也是非常重要的,
主要包括文本字符串(strings)、
颜色(colors)、
数组(arrays)、
动画(anim)、
布局(layout)、
图像和图标(drawable)、
音频视频(media)和其他应用程序使用的组件。
这些资源都需要通过相应的资源类来进行管理。 下面请看管理这些资源的相关类:
int getColor(int id) //对应res/values/colors.xml
Drawable getDrawable(int id) //对应res/drawable/
XmlResourceParser getLayout(int id) //对应res/layout/
String getString(int id) 和CharSequence getText(int id) //对应res/values/strings.xml
InputStream openRawResource(int id) //对应res/raw/
void parseBundleExtra (String tagName, AttributeSet attrs, Bundle outBundle) //对应res/xml/
String[] getStringArray(int id) //对应res/values/arrays.xml
float getDimension(int id) //对应res/values/dimens.xml
如何获取字符串
字符串存储在/res/values/strings.xml文件中
String str = getResources().getString(R.string.hello);
CharSequence cha = getResources().getText(R.string.app_name);
字符串数组存储在/res/values/arrays.xml文件中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="test">
<item>Vanilla</item>
<item>Chocolate</item>
<item>Strawberry</item>
</string-array>
</resources>
String strs[] = getResources().getStringArray(R.array.test);
图片
<array name="sample_images">
<item>@drawable/dialog_bg</item>
<item>@drawable/dialog_bg</item>
<item>@drawable/dialog_bg</item>
</array>
颜色值
颜色存储在/res/values/colors.xml文件中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="text_color">#F00</color>
</resources>
(R.color.text_color)
尺寸值
尺寸存储在/res/values/dimens.xml文件中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="txt_app_title">22sp</dimen>
<dimen name="font_size_10">10sp</dimen>
<dimen name="font_size_12">12sp</dimen>
<dimen name="font_size_14">14sp</dimen>
<dimen name="font_size_16">16sp</dimen>
</resources>
float myDimen = getResources().getDimension(R.dimen.dimen标签name属性的名字);
简单的Drawable图形
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<drawable name="red_rect">#F00</drawable>
</resources>
ColorDrawable myDraw = (ColorDrawable)getResources().getDrawable(R.drawable.red_rect);
Content Color
ContextCompat.getColor(R...)
activity.getResources().getColor(R...)
Color.parseColor("#87CEFA")