Android 游戏 - 在图片上绘制文字

Android Game - Drawing text on top of image

我正在构建一个 Android 游戏,其中包含一张卡片作为背景。

我需要做的是在运行时(每秒或发生特殊事件时)在图像顶部绘制文本。
但是我需要在图像的特定位置绘制文本,比方说:如果图像是 123x245,让我们在 (2, 3) 绘制文本。
到目前为止我所做的是将文本写入图像(作为位图)并将新位图分配给 ImageView,但性能非常糟糕。

那么,为了做到这一点,您建议采用什么解决方案:CustomViewSurfaceView 等?

谢谢。

试试这个:

private Bitmap addTextToBitmap(Bitmap b) {
    Canvas c = new Canvas(b);
    Paint p = new Paint();

    p.setTextSize(100);  // textSize
    p.setColor(getResources().getColor(android.R.color.black));  // textColor
    c.drawText("Your Text", POS_X, POS_Y, p);  // textPosition
    b = b.copy(Bitmap.Config.RGB_565, true); 
    return b;
}

例如:

imageView.setImageBitmap(addTextToBitmap(imageView.getDrawable().getBitmap()));

扩展你 ImageView 并使用 onDraw 中的 Canvas.drawText 方法将文本绘制在任何图像集上方 ImageView 中。不要忘记在 super.onDraw 调用之后调用 drawText,否则您的文本将绘制在 ImageView 的图像下方。