一、把非代码资源与代码分离是一种更专业的做法。这种资源分离使得他们变得更加容易维护、更新和管理,可以轻松轻松地支持国际化,可以更加从容地应对硬件变化(特别是屏幕变化)
二、应用程序资源存储在res文件夹中。在这个文件夹中,每种可用资源类型都存储在各自的子文件夹中。res下主要有三类文件夹:values、drawable、layout
Android定义的资源类型有9类:简单值、Drawable、颜色、布局、动画、菜单、XML文件(包括searchable)和原始资源。它们存储的文件夹分别是:
简单值-->res/values;Drawable-->res/drawable(或者对应分辨率的drawable的文件夹下);布局-->res/layout;动画-->res/animator;菜单-->res/menu;
三、简单值
简单值包括string(字符串)、integer(整数)、color(颜色)、dimen(尺寸)、style(样式)、string-array(字符串数组)、array(整形数组)
所有简单值均存储在res/values下的xml文件中。简单值可以存储在一个或者多个xml文件中,一个xml文件也可以混杂存储不同类型的简单值。简单值的资源标识符是name属性指定的(Drawable,布局等资源的标识符是文件名)。但是这些xml必须存储以<resources>标签为root标签。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 字符串 -->
<string name="app_string">thinking</string>
<!-- 整数 -->
<integer name="app_int">1</integer>
<!-- 区分数量的字符串(如英语里的单复数) -->
<plurals name="app_plurals">
<item quantity="one">one thinking</item>
<item quantity="other">%d thinkings</item>
</plurals>
<!-- 颜色 -->
<color name="app_background_color">#eee</color>
<!-- 尺寸,要带单位,px(屏幕像素)、in(物理尺寸)、pt(物理点)、mm(物理毫米)、dp(非密度制约的像素)、sp(缩放比无关的像素) -->
<dimen name="app_dimen">5dp</dimen>
<!-- 样式,每个item标签都应该包含一个name属性来指定需要设置的属性(这些属性可能不全部被目标控件支持) -->
<style name="app_text_basic_style">
<item name="android:textColor">#eee</item>
<item name="android:textSize">14sp</item>
</style>
<!-- 样式继承 -->
<style name="app_text_thinking_style" parent="app_text_basic_style">
<item name="android:background">#eee</item>
</style>
</resources>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 字符串 -->
<string name="app_string">thinking</string>
<!-- 整数 -->
<integer name="app_int">1</integer>
<!-- 区分数量的字符串(如英语里的单复数) -->
<plurals name="app_plurals">
<item quantity="one">one thinking</item>
<item quantity="other">%d thinkings</item>
</plurals>
<!-- 颜色 -->
<color name="app_background_color">#eee</color>
<!-- 尺寸,要带单位,px(屏幕像素)、in(物理尺寸)、pt(物理点)、mm(物理毫米)、dp(非密度制约的像素)、sp(缩放比无关的像素) -->
<dimen name="app_dimen">5dp</dimen>
<!-- 样式,每个item标签都应该包含一个name属性来指定需要设置的属性(这些属性可能不全部被目标控件支持) -->
<style name="app_text_basic_style">
<item name="android:textColor">#eee</item>
<item name="android:textSize">14sp</item>
</style>
<!-- 样式继承 -->
<style name="app_text_thinking_style" parent="app_text_basic_style">
<item name="android:background">#eee</item>
</style>
</resources>