当前位置: 首页 > 面试题库 >

如何在Android中从位图裁剪圆形区域

史鸿运
2023-03-14
问题内容

我有一个位图,我想从该位图裁剪一个圆形区域。圆外的所有像素均应透明。我怎样才能做到这一点?


问题答案:

经过长时间的头脑风暴,我找到了解决方案

public Bitmap getCroppedBitmap(Bitmap bitmap) {
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
            bitmap.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(output);

    final int color = 0xff424242;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    // canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
    canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2,
            bitmap.getWidth() / 2, paint);
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);
    //Bitmap _bmp = Bitmap.createScaledBitmap(output, 60, 60, false);
    //return _bmp;
    return output;
}


 类似资料:
  • 问题内容: 请提供有关如何在椭圆形或圆形上进行裁剪的想法。请分享您的想法。 问题答案: 通过增加半径,它将变得更圆滑。 只要图像是正方形,就可以通过将宽度的一半作为拐角半径来获得一个完美的圆: 您还需要添加 斯威夫特4.2

  • 我想从矩形照片中制作一个居中的圆形图像。照片的尺寸未知。通常是矩形。我尝试了很多方法: 密码

  • 问题内容: 我通过android开发实现了我的目标,如该链接所示:[从Android中的位图裁剪圆形区域,](http://codingdict.com/questions/148437 但是 如何 使用libGDX框架实现呢?我尝试与我合作,但没有成功。 任何人都可以帮助我实现这一目标。 问题答案: 我不知道是否有更简单的方法,但是我提出了一种使用遮罩并将遮罩与原始像素图合并为结果像素图的方法。

  • 问题内容: 我知道这应该很简单,但不会裁剪图像 我得到的图像宽为 1950像素 ,需要通过父对象的宽度进行裁剪。但是不会裁剪图像。我需要在布局中做什么才能仅显示前 400个像素 ,例如,无论屏幕/父级宽度是多少 对不起,一个简单的问题-尝试使用Google-仅存在复杂的问题。我是新手,所以请不要投票) 如果唯一的方法是以编程方式对其进行裁剪-请通过一种方法给我一个建议 问题答案: 好吧,我将评论粘

  • 基本上,我有一个矩形位图,并希望创建一个新的正方形尺寸的位图,其中将包含其中的矩形位图。 因此,例如,如果源位图的宽度:100和高度:400,我想要一个宽度:400和高度:400的新位图。然后,绘制以这个新位图为中心的源位图(请参阅附加图像以更好地理解)。 我下面的代码很好地创建了方形位图,但没有将源位图绘制到其中。结果,我留下了一个完全黑色的位图。 这是代码: 知道我哪里做错了吗?

  • 我在寻找过去的一天,我没有成功。 我从API获取图像,并使用以下代码将其下载到位图文件。 我得到一个正方形的图像,我想裁剪四个角,使其成为圆形图像。有没有可能实现的方法? 欢迎任何相关答案。提前谢谢。