Android Canvas 渐变

Android Canvas Gradient

我试着在 Android canvas 上画这个,我有问题...

  1. 为什么所有着色器结果只有白色和黑色?没有颜色...

  2. 如何为两个以上的点(x,y)设置颜色?

  3. 在哪里可以找到显示简单组合使用的示例?

代码:

Shader1 = new LinearGradient(0, 0, 0,BarHeight,0xff696969 ,0xffffffff,   Shader.TileMode.CLAMP);
Shader2 = new LinearGradient(BarHeight/2, BarHeight/2, 0,34,0xf0696969 ,0xfff34f5f, Shader.TileMode.CLAMP);
ComposeShader mShader = new ComposeShader(Shader2, Shader1,  PorterDuff.Mode.MULTIPLY);
GraundPaint.setShader(mShader);
canvas.drawRoundRect(rectf, 0, 0, GraundPaint);

你可以设置多于2个点通过使用LinearGradient的this constructor,它接受一个颜色数组和相应的位置数组(0到1之间) .

对于使用 LinearGradient 的简单示例,您可以查看here