canvas教程

领略千变万化的Android Drawable (二)(5)

字号+ 作者:H5之家 来源:H5之家 2017-02-15 08:03 我要评论( )

ColorDrawable 是最简单的Drawable,它实际上是代表了单色可绘制区域,它包装了一种固定的颜色,当ColorDrawable被绘制到画布的时候会使用颜色填充Paint,在画布上绘制一块单色的区域。 在xml文件中对应标签,它只

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官网》


打赏支持我写出更多好文章,谢谢!


打赏作者

打赏支持我写出更多好文章,谢谢!



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Canvas使用技巧 相关文章

    Canvas使用技巧 相关文章

    2017-02-14 08:00

  • 调用android 自带的DownloadProvider遇到的有关问题

    调用android 自带的DownloadProvider遇到的有关问题

    2017-02-11 09:02

  • 轻松理解Android的SurfaceView控件

    轻松理解Android的SurfaceView控件

    2017-02-09 18:03

  • 【自定义控件系列一】android画图类

    【自定义控件系列一】android画图类

    2017-02-07 13:02

网友点评
/