我关注了该主题的其他一些问题,以及XferModes上的API演示,并尝试创建一个根据alpha掩码屏蔽其内容的ImageView。 alpha位图包含要隐藏区域的0 alpha和要显示区域的255 alpha。
这是onDraw代码:
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
Paint paint = new Paint();
paint.setFilterBitmap(false);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawBitmap(mMaskBitmap, 0, 0, paint);
paint.setXfermode(null);
它对我不起作用。如果我放置SRC_IN,掩码就会被绘制在顶部。如果我把DST IN,我只看到原始图像。
有什么建议吗?
答案 0 :(得分:1)
问题解决了,我发现ImageView和掩码位图的大小有4个像素的差异,这导致整个事情无声地发生故障......奇怪的是没有异常抛出。
无论如何,只要掩码大小< = ImageView大小。
,上面的代码就可以工作