Canvas渐变属性绘制
五颜六色,七彩缤纷。有时候我们的UI设计稿也极尽色彩之能,比如下图这样:
这种渐变效果我们能画吗?不得不说,Android系统的基础构架还是很强大的,我们可以使用LinearGradient进行绘制,与其相关的还有SweepGradient,RadialGradient.
LinearGradient,SweepGradient及RadialGradient均为Shader子类,所以与前文类似,我们只需要调用paint.setShader方法将对象设置进去,然后进行绘制即可。
LinearGradient
使用代码如下:
int[] mColors = {Color.RED,Color.YELLOW,Color.GREEN,Color.BLUE};
//从(0,0)到(400,400)绘制线性渐变,也就是对角线区域为渐变水平线
LinearGradient linearGradient =
new LinearGradient(0, 0, 400, 400, mColors, null, Shader.TileMode.MIRROR);
paint.setShader(linearGradient);
canvas.drawRect(0,0,800,800,paint);
paint.setTextSize(400);
//使用渐变着色器