在Android中屏蔽布局中的图像

在Android中屏蔽布局中的图像,android,android-layout,mask,Android,Android Layout,Mask,我需要能够在我的布局遮罩有圆角的图像。有没有一种简单的方法可以在布局中指定alpha遮罩?我希望避免手动屏蔽我正在使用的每个位图 编辑 这是我的代码,参考另一个答案: HttpURLConnection connection = (HttpURLConnection) this.items.get(position).getIcon().toURL().openConnection(); connection.setDoInput(true); connection.connect(); B

我需要能够在我的布局遮罩有圆角的图像。有没有一种简单的方法可以在布局中指定alpha遮罩?我希望避免手动屏蔽我正在使用的每个位图


编辑 这是我的代码,参考另一个答案:

HttpURLConnection connection = (HttpURLConnection) this.items.get(position).getIcon().toURL().openConnection();
connection.setDoInput(true);
connection.connect();

Bitmap bitmap = BitmapFactory.decodeStream(connection.getInputStream());

Integer dimension = bitmap.getWidth() > bitmap.getHeight() ? bitmap.getWidth() :
        bitmap.getHeight();

Bitmap rounder = Bitmap.createBitmap(dimension, dimension, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(rounder);

Paint painter = new Paint(Paint.ANTI_ALIAS_FLAG);
painter.setColor(Color.RED);

canvas.drawRoundRect(new RectF(0, 0, dimension, dimension), 
        20.0F, 20.0F, painter);

painter.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));

canvas.drawBitmap(bitmap, 0, 0, null);
canvas.drawBitmap(rounder, 0, 0, painter);

holder.image.setImageBitmap(bitmap);

然而,这不起作用。我没有看到圆角,我看到的是正常的图像。在结尾处是否有我遗漏的涉及画布的步骤?

看起来你的问题以前已经得到了回答,也许会有所帮助

有几种方法可以实现这一点。我会做一个九块的补丁,除了角之外都是透明的,然后在图像上画出来。

看看这个问题,这很有帮助,但是我如何将ImageView的位图设置为圆角?他的回答似乎遗漏了最后一步:(我修改了我的问题,加入了我正在使用的不起作用的代码。我的链接与damp的不同,我的链接以列表数组的形式在图像中迭代,alpha掩码是红色的(另一张图片),这是一种优雅的原始解决方案。我不知道这是否一定是最好的解决方案,但它似乎非常可靠。答案适用于纯java程序。我相信在Android中,如果使用画布,你可以获得更好更快的结果。但我正在寻找一个好的答案,比如这也是。