Android应用资源的认识
最近在学习Android项目的开发,但是对于Android项目中资源文件的存放位置、作用之类的不怎么清楚。直到在一本书上看到关于这方面的介绍,下面就搬过来记录一下,方便自己以及想要学习Android开发的同学查询学习。
如图:
具体对应的功能见下表
资源文件夹 | 功能 |
---|---|
/res/animator/ | 存放定义属性动画的XML文件 |
/res/color/ | 存放定义不同状态下颜色列表的XML文件 |
/res/drawable/ | 存放各种位图文件(.png, .9.png, .jpg, .gif)等 BitmapDrawable、StateListDrawable、ShapeDrawable、AnimationDrawable等 |
/res/layout/ | 存放各种用户界面的布局文件 |
/res/menu/ | 存放为应用定义各种菜单的资源 |
/res/raw/ | 存放任意类型的原生资源(音频、视频文件),通过getResources().openRawResource()来访问 |
/res/values/ | 存放各种简单值的XML文件,包括字符串值、整数值、颜色值等 |
arrays.xml | 定义数组资源 |
colors.xml | 定义颜色值资源 |
dimens.xml: | 定义尺寸值资源 |
strings.xml | 定义字符串资源 |
styles.xml | 定义样式资源 |
/res/xml/ | 存放任意的原生XML文件,在Java中通过getResources().getXml()访问 |
1、StateListDrawable的使用(选择器)
状态 | 描述 |
---|---|
android:state_active | 代表是否处于激活状态 |
android:state_checkable | 代表是否处于可勾选状态 |
android:state_checked | 代表是否处于以勾选状态 |
android:state_enabled | 代表是否处于可用状态 |
android:state_first | 代表是否处于开始状态 |
android:state_focused | 代表是否处于已得到焦点状态 |
android:state_last | 代表是否处于结束状态 |
android:state_middle | 代表是否处于中间状态 |
android:state_pressed | 代表是否处于已被按下状态 |
android:state_selected | 代表是否处于已被选中状态 |
android:state_window_focused | 代表是否处于已得到焦点状态 |
栗子:(文本框的文字颜色随着状态的改变而改变)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--指定获得焦点时候的颜色-->
<item android:state_focused="true" android:color="#f44"></item>
<!--指定失去焦点时候的颜色-->
<item android:state_focused="false" android:color="#ccf"></item>
</selector>
2、LayerDrawable的使用
<?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/ic_launcher"></item>
<!--定义轨道上面已经完成的外观-->
<item android:id="@android:id/progress" android:drawable="@drawable/ic_action_search"></item>
</layer-list>
3、ShapeDrawable的使用
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<!--rectangle 长方形 line 线 ring 圆环 oval 椭圆 -->
<!-- <corners>圆角</corners> -->
<!-- <gradient>渐变</gradient> -->
<!-- <padding>间隔</padding> -->
<!-- <size>大小</size> -->
<!-- <solid>填充</solid> -->
<!-- <stroke>瞄边</stroke> -->
<!--设置填充颜色-->
<solid android:color="#fff"></solid>
<padding android:left="7dp"
android:right="7dp"
android:top="7dp"
android:bottom="7dp"></padding>
<stroke android:width="3dp" android:color="#ff0"></stroke>
</shape>