本文介绍了如何绘制平滑/抖动梯度Android的画布上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
若干答案提及使用GradientDrawable.setDither(真)绘制平滑渐变的Android系统。已在我的code没有影响。任何想法,我必须要改变以获得一个很好看的梯度在我居住的壁纸?
GradientDrawable梯度=新GradientDrawable(Orientation.TL_BR,颜色);
gradient.setGradientType(GradientDrawable.RADIAL_GRADIENT);
gradient.setGradientRadius(canvas.getWidth()* 2);
gradient.setDither(真正的);
gradient.setGradientCenter(-0.1f,-0.1f);
gradient.setBounds(CB);
gradient.draw(画布);
解决方案
看到你有一个帆布的工作。这是一个选项。
私人位图makeRadGrad(){
的RadialGradient梯度=新的RadialGradient(200,200,200,为0xFFFFFFFF,
0xFF000000,android.graphics.Shader.TileMode.CLAMP);
涂料P =新的油漆();
p.setDither(真正的);
p.setShader(梯度);
位图的位图= Bitmap.createBitmap(400,400,Config.ARGB_8888);
帆布C =新的Canvas(位);
c.drawCircle(200,200,200,p)的;
返回的位图;
}
结果:
Several answers mention to use GradientDrawable.setDither(true) to draw smooth gradients in Android. That has no effect in my code. Any idea what I have to change to get a well looking gradient in my live wallpaper?
GradientDrawable gradient = new GradientDrawable(Orientation.TL_BR, colors);
gradient.setGradientType(GradientDrawable.RADIAL_GRADIENT);
gradient.setGradientRadius(canvas.getWidth() * 2);
gradient.setDither(true);
gradient.setGradientCenter(-0.1f, -0.1f);
gradient.setBounds(cb);
gradient.draw(canvas);
解决方案
Seeing as you have a Canvas to work with. Here is one option.
private Bitmap makeRadGrad() {
RadialGradient gradient = new RadialGradient(200, 200, 200, 0xFFFFFFFF,
0xFF000000, android.graphics.Shader.TileMode.CLAMP);
Paint p = new Paint();
p.setDither(true);
p.setShader(gradient);
Bitmap bitmap = Bitmap.createBitmap(400, 400, Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
c.drawCircle(200, 200, 200, p);
return bitmap;
}
Result:
这篇关于如何绘制平滑/抖动梯度Android的画布上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!