ColorDrawable 是最简单的Drawable,它实际上是代表了单色可绘制区域,它包装了一种固定的颜色,当ColorDrawable被绘制到画布的时候会使用颜色填充Paint,在画布上绘制一块单色的区域。 在xml文件中对应标签,它只有一个android:color属性,通过它来决定ColorDrawable的颜色。
xml实现如下:
<?xmlversion="1.0" encoding="utf-8"?>
<color xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/normal"
/>
<?xmlversion="1.0" encoding="utf-8"?><color xmlns:android="http://schemas.android.com/apk/res/android"android:color="@color/normal"/>
也可以使用代码实现,注意传入的颜色值为16进制的数字:
ColorDrawable cd = new ColorDrawable(0xff000000);
ImageView iv = (ImageView)findViewById(...);
iv.setImageDrawable(cd);
ColorDrawable cd = new ColorDrawable(0xff000000);ImageView iv = (ImageView)findViewById(...);iv.setImageDrawable(cd);
12、GradientDrawable
GradientDrawable 表示一个渐变区域,可以实现线性渐变、发散渐变和平铺渐变效果,实际上这个我们在上一篇的shapeDrawable中就已经分析过了,忘了可以回头复习一下哈~,其对应的标签为<gtadient>一般都是配置shapeDrawable来使用,为其实现渐变颜色。这里给出简单案例如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
><gradient android:angle="90"
android:startColor="@color/colorPrimary"
android:centerColor="#fff"
android:endColor="@color/color_state"
android:type="linear"
/>
</shape>
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><gradient android:angle="90"android:startColor="@color/colorPrimary"android:centerColor="#fff"android:endColor="@color/color_state"android:type="linear"/></shape>
当然GradientDrawable也可以作为View的背景图,案例代码实现如下:
//分别为开始颜色,中间夜色,结束颜色
int colors[] = { 0xff255779 , 0xff3e7492, 0xffa6c0cd };
GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors);
//分别为开始颜色,中间夜色,结束颜色int colors[] = { 0xff255779 , 0xff3e7492, 0xffa6c0cd };GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors);
最后设置给View的背景图即可。
setBackgroundDrawable(gd);
setBackgroundDrawable(gd);
代码实现GradientDrawable还可以设置边框,圆角,边框宽度等等,这里我们就不深究了,感兴趣可以自行研究一下。
到此,常用的Drawable我们已经全部介绍完了,告一段落了哈~,下一篇我们将继续分享如何实现自定义Drawable,欢迎关注。
主要参考资料:
《android开发艺术探索》
《google android官网》
打赏支持我写出更多好文章,谢谢!
打赏作者
打赏支持我写出更多好文章,谢谢!