I want to make a dynamic alpha mask with drawable shapes as circles or whatever, and apply it to a drawed text on Android.
Here is an example of what i want :
我正在努力做到这一点setXfermode(new PorterDuffXfermode(Mode.SRC_IN))
,但我无法让它工作。
这是我的代码onDraw(Canvas canvas)
方法 :
Paint paint = new Paint();
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(Color.WHITE);
canvas.drawCircle(50, 50, 50, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
paint.setColor(Color.RED);
canvas.drawText("hello", 0, 50, paint);
在此先感谢您的帮助
尝试分别创建源位图和蒙版位图。我见过的大多数示例都涉及使用两个位图并使用drawBitmap 来执行遮罩。
我使用 PorterDuff.Mode.DST_IN 进行绘制,然后绘制源图像(没有绘制),然后绘制蒙版图像(有绘制)。像这样的东西:
Bitmap bitmapOut = Bitmap.createBitmap(sizeX, sizeY,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmapOut);
Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
xferPaint.setColor(Color.BLACK);
xferPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(sourceImage, 0, 0, null);
canvas.drawBitmap(alphaMask, 0, 0, xferPaint);
此时,bitmapOut 包含我的蒙版图像。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)