在Android中布局图像

时间:2011-02-15 16:10:19

标签: android android-layout mask

我需要能够在布局中屏蔽图像以获得圆角。有没有一种简单的方法来在布局中指定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);

然而,这不起作用。我没有看到圆角,我看到的是常规图像。最后我是否缺少涉及画布的步骤?

2 个答案:

答案 0 :(得分:2)

看起来您的问题之前已经得到解答,或许this可能有帮助吗?

答案 1 :(得分:1)

有几种方法可以实现这一点。我会制作一个透明的九个补丁,除了角落并在图像上绘制。