一、Drawable
-
Android把所有显示出来的图形都抽象为Drawable(可绘制的),这里的图形不止是图片,还包括色块、画板、背景等。
-
Drawable文件放在res目录的各个drawable目录下。\res\drawable一般存放描述性的XML文件,图片文件放在具体分辨率的drawable目录下。
drawable-mdpi: 存放中等分辨率的图片(eg: 320*480)
drawable-hdpi: 存放高分辨率的图片(eg: 480*800)一般对应4寸~4.5寸手机
drawable-xhdpi: 存放加高分辨率的图片(eg: 720*1280)一般对应5寸~5.5寸手机
drawable-xxhdpi: 存放超高分辨率的图片(eg: 1080*1920)一般对应6寸~6.5寸手机
drawable-xxxhdpi: 存放超超高分辨率的图片(eg: 1440*2560)一般对应7寸以上平板电脑
-
在XML文件中引用drawable文件的方法
@drawable/XXXX
-
在代码中引用drawable文件的方法
(1) 使用setBackgroundResource和setImageResource方法,直接在参数中指定drawable文件的资源ID,例如R.drawable.XXX
(2)使用setBackgroundDrawable和setImageDrawable方法,参数为drawable对象,drawable对象的获取方法:
Drawable drawable = getResources().getDrawable(R.drawable.XXX)
Drawable的子类StateListDrawable,可以显示一个图形列表,用于拥有不同状态的控件。可以根据控件的不同状态,显示列表中的不同图形。
二、状态列表图形
-
状态列表图形的定义方法(在XML文件中定义)
<selector xmlns:android=http://schemas.android.com/apk/res/android>
<item android:state_pressed=“true”
android:drawable=“@drawable/button_pressed”/>
<item android:drawable=“@drawable/button_normal”/>
</selector>
三、形状图形
-
即Shape图形,可在XML文件中定义形状图形。
-
形状图形的定义以shape元素为根结点,根结点下可以包含6个结点:
(1) corners:圆角
(2) gradien:渐变
(3) padding:间隔
(4) size:尺寸
(5) solid:填充
(6) stroke:描边
-
corners:描述4个圆角的规格定义,若无该节点,表示没有圆角,corners的常用属性如下:
-
solid:描述形状图形内部的填充色彩,若无该节点,表示无填充颜色,solid节点的常用属性为color(颜色类型,表示内部填充的颜色)
-
stroke:描述形状图形四周边线的规格定义,若无该节点,表示无描边。Stroke节点的常用属性如下: