在Android中,我可以用图像而不是颜色填充文本吗?

时间:2018-04-24 07:41:42

标签: android textview

在PowerPoint中,使用图像而不仅仅是颜色来填充文本很容易。这是一个例子:

styled text with kitten image as background

我在Android中构建自定义TextView并希望重现同样的效果。我没有成功搜索Android文档,Stack Overflow或Google。有谁知道我怎么能做到这一点?在完美的工作中,我会做类似的事情:

paint.setcolor(bounds, Bitmap kitten)

1 个答案:

答案 0 :(得分:0)

也许Xfermode.DST_IN会有所帮助。

你需要使用canvas api,首先渲染背景,然后是文本。并使用setXfermode()。例如:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    canvas.drawARGB(255, 139, 197, 186);

    int canvasWidth = canvas.getWidth();
    int canvasHeight = canvas.getHeight();
    int layerId = canvas.saveLayer(0, 0, canvasWidth, canvasHeight, null, Canvas.ALL_SAVE_FLAG);
        int r = canvasWidth / 3;

        paint.setColor(0xFFFFCC44);
        canvas.drawCircle(r, r, r, paint);

        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
        paint.setColor(0xFF66AAFF);
        canvas.drawRect(r, r, r * 2.7f, r * 2.7f, paint);

        paint.setXfermode(null);
    canvas.restoreToCount(layerId);
}

enter image description here