使用形状蒙版绘制文本?
Draw text with a shape mask?
我正在 canvas 上绘制文字。我想在文本上画一个实心的颜色圆圈,并且只在与文本相交的地方绘制圆圈。示例:
以及我想做的事情:
我不确定这是否可行,我的绘制代码很简单:
public void onDraw(Canvas canvas) {
canvas.drawText("Hello", x, y, paint);
paint.setColor(orange);
canvas.drawOval(...);
}
我想我需要应用一些掩蔽,但不确定如何开始。
按照 googler 的教程进行操作...
android-shaders-filters
BitmapShader 可以帮到你
您可以在 Android 中使用 PorterDuffXfermode 来实现这一点。
如果您使用以下代码,它将正常工作:
Bitmap original = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(),
Bitmap.Config.ARGB_8888); // Created from Canvas
Bitmap mask =
Bitmap.createBitmap(getContext().getResources(),R.drawable.mask_image);
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(),
Config.ARGB_8888);
Canvas tempCanvas = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
tempCanvas.drawBitmap(original, 0, 0, null);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
tempCanvas.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
canvas.drawBitmap(result, 0, 0, new Paint());
What does PorterDuff.Mode mean in android graphics.What does it do?
我正在 canvas 上绘制文字。我想在文本上画一个实心的颜色圆圈,并且只在与文本相交的地方绘制圆圈。示例:
以及我想做的事情:
我不确定这是否可行,我的绘制代码很简单:
public void onDraw(Canvas canvas) {
canvas.drawText("Hello", x, y, paint);
paint.setColor(orange);
canvas.drawOval(...);
}
我想我需要应用一些掩蔽,但不确定如何开始。
按照 googler 的教程进行操作... android-shaders-filters
BitmapShader 可以帮到你
您可以在 Android 中使用 PorterDuffXfermode 来实现这一点。
如果您使用以下代码,它将正常工作:
Bitmap original = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(),
Bitmap.Config.ARGB_8888); // Created from Canvas
Bitmap mask =
Bitmap.createBitmap(getContext().getResources(),R.drawable.mask_image);
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(),
Config.ARGB_8888);
Canvas tempCanvas = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
tempCanvas.drawBitmap(original, 0, 0, null);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
tempCanvas.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
canvas.drawBitmap(result, 0, 0, new Paint());
What does PorterDuff.Mode mean in android graphics.What does it do?