如何将dynamicalpha蒙版应用于Android上的文本

我想制作一个dynamic的阿尔法面具与可绘制的形状为圆形或其他,并将其应用于Android上的绘制文本。 这是我想要的一个例子: 阿尔法面具

我正在尝试使用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); 

在此先感谢您的帮助

Solutions Collecting From Web of "如何将dynamicalpha蒙版应用于Android上的文本"

尝试分别创build您的源和掩码位图。 我见过的大多数例子都涉及到使用两个位图,并使用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包含我的蒙版图像。