android - 如何在 Android 的 Canvas 上绘制平滑/抖动渐变

标签 android gradient dithering

几个答案提到使用 GradientDrawable.setDither(true) 在 Android 中绘制平滑渐变。这对我的代码没有影响。知道我必须更改哪些内容才能在动态壁纸中获得好看的渐变吗?

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);

最佳答案

看到你有一个可以使用的 Canvas 。这是一种选择。

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 - 如何在 Android 的 Canvas 上绘制平滑/抖动渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936803/

相关文章:

android - WebView 中的视频仅播放声音

android - 如何使用 AndroidSDK 更改 estimote beacon UUID

CSS Flex Box - 有没有办法使用::Before::After 自动对齐中心,这样你就可以添加内容

matrix - 如何从 Octave 音阶的文件中加载矩阵?

android - 使用 JNI 和 NDK 旋转位图

css - 如何结合背景图片和CSS渐变?

python - 从 CSV 进行 Tensorflow 深度学习...梯度问题

python - JES/Jython 中的抖动

java - 如何控制误差扩散描述符的颜色模型的像素大小?

android - Azure SignatureHash 拒绝来自 debug.keystore 的 Base64 编码 SHA1 哈希