Android res 资源文件
本文内容摘自《疯狂Android讲义 第三版-李刚著作》
Android5.0 res目录包含drawable,drawable-ldpi(底分辨率),drawable-mdpi(中分辨率)、drawable-hdpi(高分辨率)、drawable-xhdpi(超高分辨率)
在Java代码中使用资源清单项
Android SDK编译应用时在R类中为res/目录下所有资源文件创建引索,Java代码中通过R类来访问资源文件,语法:
[<package_name>.]R.<resource_type>.<resource_name>
Resource 类主要提供了如下两类方法:
getXxx(int id):根据清单ID来获取实际资源。
getAssets():获取访问/assets/目录下的资源AssetsManager对象。
使用示例:
Resource res = getResource();
String str = res.getString(R.string.name);
Drawable icon = res.getDrawable(R.drawable.icon);
int[] intarray = res.getIntArray(R.array.books);
/res/values/string.xml 定义string
<resources> <string name="app_name">SetupWizard</string> <string name="language">Language</string> <string name="timezone">Time zone</string> <string name="screen">Screen</string> <string name="network">Network</string> </resourc
/res/values/colors.xml 定义color
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> </resources>
/res/values/dimens.xml 定义组件尺寸、字体大小等
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- 定义组件宽高 --> <dimen name="cell_height">26dp</dimen> <dimen name="cell_weight">66dp</dimen> <!-- 定义字体大小 --> <dimen name="title_font_size">16sp</dimen> </resources>
/res/values/bools.xml 定义boolean常量
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="is_male">true</bool> <bool name="is_small">false</bool> </resources>
/res/values/integers.xml 定义Integer常量
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="age">23</integer> <integer name="size">80</integer> </resources>
/res/values/arrays.xml 定义各种类型数组
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="plain_array"> <item>@color/colorPrimary</item> <item>@color/colorAccent</item> <item>@color/colorPrimaryDark</item> </array> <array name="my_photo"> <item>@drawable/background</item> </array> <string-array name="string_array"> <item>@string/app_name</item> <item>@string/language</item> <item>@string/screen</item> </string-array> <string name="string_lan_arr"> <item>Android</item> <item>Java</item> <item>Python</item> <item>PHP</item> <item>C/C++</item> <item>JSP</item> </string> <integer-array name="integer_arr"> <item>@integer/age</item> <item>@integer/size</item> </integer-array> </resources>
StateListDrawable资源
/res/drawable/my_image.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color="#225"/> <item android:state_focused="false" android:color="#00f"/> <item android:state_checked="false" android:drawable="@drawable/background" /> <item android:state_checked="true" android:drawable="@drawable/background"/> </selector>
LayerDrawable资源
/res/drawable/my_progressbar.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" android:drawable="@drawable/alert_dialog_icon" /> <item android:id="@android:id/progress" android:drawable="@drawable/sun" /> </layer-list>
/res/drawable/layout_logo.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/img1" android:gravity="center"/> </item> <item android:top="25dp" android:left="25dp"> <bitmap android:src="@drawable/img2" android:gravity="center" /> </item> <item android:top="25dp" android:left="50dp"> <bitmap android:src="@drawable/img3" android:gravity="center" /> </item> </layer-list>
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/layout_logo"/> <SeekBar android:id="@+id/seekbar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/show_image" android:max="255" android:progress="100" android:progressDrawable="@drawable/my_progressbar" />