Android:如何使用 onDraw 方法模糊圆的边缘?

标签 android image-processing graphics

我有以下方法:

protected void onDraw(Canvas i_Canvas) {            
        int x = (int) m_X;
        int y = (int) m_Y;

        Path path = new Path();
        path.addCircle(
            m_Cx,
            m_Cy,
            m_Radius,
            Path.Direction.CCW);
        i_Canvas.clipPath(path);

        Rect rect = new Rect(x, y, x + 240, y + 240);

        i_Canvas.drawBitmap(m_FullImageBitmap, rect, rect, m_Paint);
    }

使用它我试图创建一个圆形的一些位图的裁剪区域。

我还想模糊那个圆圈区域的边缘。例如:从边缘到形状中心的 5px 将被模糊。我该如何实现?

最佳答案

我认为您在绘制图像时必须应用 BlurMaskFilter:

m_Paint = new Paint(0);
m_Paint.setColor(0xffffffff);
m_Paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL));

关于Android:如何使用 onDraw 方法模糊圆的边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999037/

相关文章:

android - 本地化 Android DatePickerDialog

android - 深度链接不会在 Android 中自动打开

ruby-on-rails - 使用CMYK的Rmagick/ImageMagick图像创建

matlab - 根据颜色图更改现有绘图线

android - 如何在应用程序启动时自动捕获图像在android中?

安卓 8 : Cleartext HTTP traffic not permitted

algorithm - IF图像中细胞膜的识别

c++ - opencv:如何在方向图像上绘制箭头

java - 循环 256*256*256 颜色,使得颜色逐渐变化并且相似的色调在循环的后续迭代中不会重复?

c# - 旋转字符串以在位图上垂直书写