资源文件夹
res/anim/
XML文件,被编译进逐帧动画或补间动画对象
res/drawable
位图文件、Nine-Patch,使用context.getResources().getDrawable(intid)取得
res/layout
XML文件,被编译成屏幕布局
res/values
可以被编译成多种类型的XML文件(array.xml、colors.xml、strings.xml、styles.xml、dimens.xml)
res/xml
任意的XML文件,运行时调用getResources().getXml(intid)读取
res/raw
直接复制到设备中的任意文件,无需编译,要使用这些资源,调用getResources.openRawResource(int id)
res/assets
也可以当值任意文件,使用Activity.this.getAssets().open("xxx.txt");打开
Drawable资源
Color
描述:
-- 定义在XML中的Color,有两种类型,一种节点名为<drawable>,当做Drawable使用,可以填充组件颜色(即给View设置背景色),另一种节点名是<color>,是颜色字符串值
-- ColorDrawable是一种简单的资源,可以在XML中的<resources>元素下添加多个ColorDrawable,使用name属性引用其值(不再使用文件名),其值可以是任何有效的十六进制颜色值或Color资源
-- Color值总以“#”开头,格式为:#RGB、#ARGB、#RRGGBB、#AARRGGBB(A表示Alpha,透明度)
位置:
res/drawable/xxx.xml
引用:
Java:R.drawabale.solid_red(R.drawable.white)
XML:@[package:]drawable/solid_red(@[package:]drawable/white)
示例:
Bitmap File
描述:
-- 基本的Bitmap图像,支持的格式有:PNG(最佳)、JPG(可接受)、GIF
-- Bitmap文件可能会被aapt工具进行无损压缩优化,在保证图像质量不变的情况下减少内存占用,存放在此文件夹下的二进制图像在编译时可能发生变更,如果打算以位流的方式读取图像来转化成Bitmap,将其放到res/raw下,在这里它们不会被优化
位置:
res/drawable/xxx.png(文件名当做资源ID使用)
引用:
Java:R.drawable.xxx
XML:@[package:]drawable/xxx
Nine-patch File
描述:
v 一种可以拉伸的PNG图像
v 典型的应用就是将此图像设为View的背景,该View至少有一个尺寸设为“wrap_content”,Nine-Patch图像会随View的大小自动伸缩进行匹配(ImageView的src则不能随View变化,按其自身大小显示部分或全部)
位置:
res/drawable/xxx.9.png(文件名当做资源ID使用)
引用:
Java:R.drawable.xxx
XML:@[package:]drawable/xxx
State List
描述:
-- StateListDrawable是定义在XML中的Drawable对象,根据状态呈现不同图像
-- 在XML中描述状态,<Selector>为根元素,其下可以包含一个或多个<item>元素
-- 每次状态改变时,StateList都会从上至下遍历XML文件,第一个匹配(非最佳匹配)当前状态的item将被使用,所以,<item>的位置是不可改变的,默认状态总在最后
位置:
res/drawable/xxx.xml(文件名当做资源ID使用)
引用:
Java:R.drawable.xxx
XML:@[package:]drawable/xxx
注:(如果使用android:src属性要同时将背景颜色设为透明,或者直接使用android:background指向该资源文件)
android:background="#00000000"且android:src="@drawable/xxx"或
android:background="@drawable/xxx"都可以实现该效果
示例:
<selector>的一些其他属性:
-- android:constantSize:随状态变化,Drawable大小是否保持不变(所有状态的最大Size),默认为false
-- android:dither:当Bitmap和屏幕不是相同的像素设定时是否支持Bitmap抖动,默认true
-- android:variablePadding:Drawable的Padding是否可以变化,需要在状态变化时处理Layout,一般不支持,默认false
<item>- 的一些其他属性:(true表示在该状态下使用,false表示在非该状态下使用)
-- android:state_selected:选中状态
-- android:state_checkable:可选状态
-- android:state_checked:已选状态
-- android:state_enabled:可用状态(可接受触摸/点击事件)
Shape
描述:
-- 定义在XML中的几何形状
位置:
res/drawable/xxx.xml
引用:
Java:R.drawable.xxx
XML:@[package:]drawable/xxx
示例:
<shape>的子节点和属性:
android:shape属性:rectangle矩形、oval椭圆、line水平直线、ring环形
-- <gradient>:为Shape指定渐变色
android:angle(Integer):渐变色角度值,0表示从左到右,90表示从上到下,必须是45的倍数,默认为0
android:centerX(Float):渐变色中心的X相对位置(0-1.0),当android:type="linear"时无效
android:center:Y(Float):渐变色中心的Y相对位置,(0-1.0),当android:type="linear"时无效
android:centerColor(Color):可选颜色,出现在start和end颜色之间
android:endColor(Color):end颜色
android:gradientRadius(Float):渐变色的半径,当android:type="radial"时有效
android:startColor(Color):start颜色
android:type:渐变色样式,有效值为:
linear:线性渐变
radial:环形渐变
sweep:sweep渐变
android:useLevel(Boolean):是否可以当做LevelListDrawable使用
<solid>:填充Shape的单一色
android:color(Color):该颜色会应用到Shape上
<stroke>:Shape的线形
android:width(Dimension):线的厚度
android:color(Color):线的颜色
android:dashGap(Dimension):间断线间的距离,仅在android:dashWidth设定时有效
android:dashWidth(Dimension):间断线的大小,仅在android:dashGap设定时有效
<padding>:内部View元素的边距
android:left(Dimension):左内边距
android:top(Dimension):上内边距
android:right(Dimension):右内边距
android:bottom(Dimension):下内边距
<corners>:为Shape创建圆角,当Shape是一个矩形时有效
android:radius(Dimension):圆角的半径,会被下面的属性覆盖
android:topLeftRadius(Dimension):左上圆角半径
android:topRightRadius(Dimension):右上圆角半径
android:bottomLeftRadius(Dimension):左下圆角半径
android:bottomRightRadius(Dimension):右下圆角半径
其他资源
Menu
描述:
菜单可以通过编码实现,也可以通过XML文件实现
位置:
res/menu/xxx.xml
引用:
Java:R.menu.xxx
XML:@[package:]menu/xxx
示例:
Style/Theme
描述:
-- Style是指View的显示风格,Theme一般是指整个程序的主题
-- style针对View控件,Theme针对Activity和Application
-- Style和Theme定义的方式相同
位置:
Style:res/values/xxx.xml
Theme:res/values/xxx.xml
引用:
Style(XML):R.style.xxx
Theme(XML):在Manifest清单文件的<application>和<activity>中声明
示例: