【问题标题】:Mask an image in layout in Android在 Android 的布局中屏蔽图像
【发布时间】:2011-02-15 16:10:19
【问题描述】:

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

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

【问题讨论】:

标签: android android-layout mask


【解决方案1】:

看起来您的问题之前已得到解答,也许this 可能会有所帮助?

【讨论】:

  • 它有帮助,但是如何将 ImageView 的位图设置为圆形位图?他的回答似乎缺少最后一步:(
  • 我已经修改了我的问题以包含我正在使用的代码,但它不起作用。
  • 我的链接与潮湿的链接不同,我的链接作为列表数组遍历图像,并且 alpha 蒙版是红色的(另一张图片),使主图片清晰。一种优雅的原始解决方案。我不知道这是否一定是最好的解决方案,但它似乎相当可靠。
  • 答案适用于纯java程序。我敢肯定,如果您使用 Canvas,在 Android 中可以获得更好更快的结果。但我也在寻找这样的好答案。
【解决方案2】:

您可以通过多种方式完成此操作。我会制作一个除了角落之外都是透明的九个补丁,然后将其绘制在图像的顶部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多