Android应用资源
前言:
1.统揽Android应用,发现android应用由:资源,java文件,布局文件(xml)文件组成,完美的业务逻辑靠java文件,完美的用户界面靠的是布局文件还有资源文件,android在管理资源上独具一格,传统方式是一般都是零散定义变量,这种情况导致在以后的维护中,必须到处寻找变量,了解到这种弊端后,有经验的程序员就会把变量定义到一个专门的变量类中,方便以后的维护,android的资源管理也查不到哪里去(想想google公司吧,能成为全球瞩目的IT公司,没两把刷子也不可能),android允许各种资源定义在res的value目录下(color,string,array,menu etc.)
【assets目录也是允许放资源文件的,唯一的区别是,res下的资源会在R.Java文件中生成对应的资源索引,应用程序可以通过R.Java文件访问资源文件,如果要访问assets下的资源文件,可以通过Context类的AssetManager获取资源文件】,也就是说,android应用中的资源其实有两种存在方式:一.原生态资源(主要保存在Assets下);二.应用资源(可以通过R类直接访问,主要保存在res下)
一.资源存储方式
(以下文件夹在创建的应用的时候有些并没有自动创建,需要我们手动创建)
/res/animator/ --------主要存放属性动画的xml文件
/res/anim/---------------主要存放补间动画的xml文件
/res/color/---------------主要存放颜色xml文件
/res/drawable----------主要存放位图文件
/res/layout/--------------主要存放布局xml文件
/res/menu/------------ 主要存放菜单xml文件
/res/raw/----------------主要存放音频文件(也是原生态文件哦)
/res/values/------------存放各种类型的简单值(color、string、array、style、dimen etc.)
//------------------------------------------------------------------------------------------------------------------------------------------------------
二.几种比较重要的资源
StateListDrawable资源
stateListDrawable主要用于组织多个Drawable对象,通过它,我们可以自定一个控件在不同状态下的表现形态
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:pressed按下状态
android:selected被选中状态
android:state_window_focused 得到窗口焦点状态
//--------------------------------------------------------------------------------
layerDrawable 资源
layerDrawable的根元素是<layer-list />,该元素可以指定以下属性:
android:drawable 指定drawable对象
android:id 指定Drawable对象要画在哪里
android:button/top/left/right:指定drawable对象所画的位置
//--------------------------------------------------------------------------------------
shapeDrawable资源
根元素:<shape />
指定元素:android:shape=["rectangle"|"oval"|"line|"ring""]
//-------------------------------------------------------------------------------------
clipDrawable 资源(截取)
根元素:<clip />
指定属性:android:drawable 指定drawable对象
android;clipOrientation 截取方向 水平还是垂直
android;gravity 截取的对齐方式
clipdrawable对象的setLevel(level)方法,当level=0,截取为空,当level=10000,截取整张图
//---------------------------------------------------------------------------------------