在Android上的Canvas中绘制一个简单的圆圈。 现在我需要用渐变色填充它,但它们并不是很平滑。 这就是我所做的:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
rectF.set(20, 20, this.get_Width() - this.get_Width()/10, this.get_Width() - this.get_Width()/10);
RadialGradient gradient = new RadialGradient(200, 200, 200, 0xFFFFFFFF,
0xFF000000, android.graphics.Shader.TileMode.CLAMP);
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setShader(gradient);
canvas.drawCircle(getWidth()/2, getHeight()/2, getWidth()/3, getGradient());
invalidate();
}
这就是结果:
我的问题是:是否有某种方法可以使HQ径向渐变?
答案 0 :(得分:1)
尝试将以下内容添加到Activity
,其中包含执行绘图的View
:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
// Eliminates color banding
window.setFormat(PixelFormat.RGBA_8888);
}
答案 1 :(得分:1)
最后我应该将我的Paint对象初始化为:
Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
这使得边界更清洁。
使用@Waqas答案,让色彩本身更加流畅。