gpt4 book ai didi

android - Android中如何实现羽化效果?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:05 27 4
gpt4 key购买 nike

我正在尝试创建椭圆位图,我需要在边距周围获得羽化效果,

有谁知道我怎样才能做到这一点?

谢谢。

最佳答案

您可以将“羽化效果”视为渐变,alpha 从 100% 逐渐变为 0%。

Android 提供 RadialGradient类为此目的。您需要使用可以指定辐射控制点的构造函数,因为您希望渐变从边缘附近开始,而不是在中间。

Android 的 RadialGradient 类的一个问题是它只支持正圆,不支持椭圆。为了弥补这一点,我们只需绘制一个完美的圆圈并在之后进行缩放。

示例代码:

    private Bitmap makeFeatheredOval(int width, int height) { 

// Determine largest dimension, use for rectangle.
int size = Math.max( width, height);

RadialGradient gradient = new RadialGradient(size / 2, size / 2, size / 2,
new int[] {0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF},
new float[] {0.0f, 0.8f, 1.0f},
android.graphics.Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(gradient);

Bitmap bitmap = Bitmap.createBitmap(size, size, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawCircle(size / 2, size / 2, size / 2, paint);

// Scale the bitmap, creating an oval
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);

return bitmap;
}

示例图片(左上角的椭圆形“月亮”):

Oval circle overlayed on demoscene awesomeness

认出该背景图像的每个人都会获得奖励积分。

关于android - Android中如何实现羽化效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com