==========图形定制==========
一、图形Drawable
1、Drawable类型表达了各种各样的图形,包括图片、色块、画板、背景等
2、包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下
/res/drawable下有图片和XML文件,XML文件也是图片,它是矢量图
例如:
(1)drawable-ldpi:里面存放低分辨率的图片(如240x320),现在没有这样的智能手机了
(2)drawable-mdpi:里面存放中分辨率的图片(如320x480),这样的智能手机已经很少了
(3)drawable-hdpi:里面存放高分辨率的图片(如480x800),一般对应4英寸~4.5英寸的手机
(4)drawable-xhdpi:里面存放加高分辨率的图片(如720x1280),一般对应5英寸~5.5英寸的手机
(5)drawable-xxhdpi:里面存放超高分辨率的图片(如1080x1920),一般对应6英寸~6.5英寸的手机
(6)drawable-xxxhdpi:里面存放超超高分辨率的图片(如1440x2560),一般对应7英寸以上的平板电脑
3、android自动适配
基本上,分辨率每加大一级,宽度和高度就要增加二分之一或三分之一像素。如果各目录存在同名图片,android就会根据手机的分辨率分别适配对应文件夹里的图片
在XML布局文件中引用图形文件可使用"@drawable/不含扩展名的文件名称"这种形式,各视图的background属性、ImageView和ImageButton的src属性、TextView和Button四个方向的drawable***系列属性都可以引用图形文件
二、形状图形
1、Shape图形又称为形状图形,它用来描述常见的几何图形,包括矩形、圆角矩形、圆形、椭圆等等
2、形状图形的定义文件是以shape标签为根节点的XML描述文件,它支持四种类型的形状
(1)rectangle:矩形。默认值
(2)oval:椭圆。此时corners节点会失效
(3)line:直线。此时必须设置stroke节点,不然会报错
(4)ring:圆形
3、shape根节点下定义了6个节点
(1)size(尺寸)
常用属性:
height:像素类型,图形高度
width:像素类型,图形宽度
(2)stroke(描边)
常用属性:
color:颜色类型,描边的颜色
dashGap:像素类型,每段虚线之间的间隔
dashWidth:像素类型,每段虚线的宽度。若dashGap和dashWidth有一个值为0,则描边为实线
width:像素类型,描边的厚度
(3)corners(圆角)
常用属性:
bottomLeftRadius:像素类型,左下圆角的半径
bottomRightRadius:像素类型,右下圆角的半径
topLeftRadius:像素类型,左上圆角的半径
topRightRadius:像素类型,右上圆角的半径
radius:像素类型,4个圆角的半径(若有上面4个圆角半径的定义,则不需要radius定义)
(4)solid(填充)
常用属性:
color:颜色类型,内部填充的颜色
(5)padding(间隔)
常用属性:
top:像素类型,与上方的间隔
bottom:像素类型,与下方的间隔
left:像素类型,与左边的间隔
right:像素类型,与右边的间隔
(6)gradient(渐变)
常用属性:
angle:整型,渐变的起始角度。为0时表示时钟的9点位置,值增大表示往逆时针方向旋转。例如,值为90表示6点位置,值为180表示3点位置,值为270表示0点/12点位置
type:字符串类型,渐变类型
|--------|---------------------------|
| 渐变类型 | 说明 |
| linear | 线性渐变,默认值 |
| radial | 放射渐变,起始颜色就是圆心颜色 |
| sweep | 滚动渐变,即一个线段以某个端点为圆心做360度旋转 |
centerX:浮点型,圆心的X坐标。当android:type="linear"时不可用
centerY:浮点型,圆心的Y坐标。当android:type="linear"时不可用
gradientRadius:整型,渐变的半径。当android:type="radial"时需要设置该属性
centerColor:颜色类型,渐变的中间颜色
startColor:颜色类型,渐变的起始颜色
endColor:颜色类型,渐变的终止颜色
useLevel:布尔类型,设置为true为无渐变色、false为有渐变色
4、创建drawable
/res/drawable目录,右键 --> New --> Drawable Resource File

shape_rect_gold.xml
XML
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 指定形状内部的填充颜色 -->
<solid android:color="#ffdd66"/>
<!-- 指定了形状轮廓的粗细与颜色 -->
<stroke
android:width="1dp"
android:color="#aaaaaa"/>
<!-- 指定了形状四个圆角的半径 -->
<corners android:radius="10dp"/>
</shape>
shape_oval_rose.xml
XML
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<!-- 指定了形状内部的填充颜色 -->
<solid android:color="#ff66aa"/>
<!-- 指定了形状轮廓的粗细与颜色 -->
<stroke
android:width="1dp"
android:color="#aaaaaa"/>
</shape>