Android游戏 - 在图像上绘制文本

时间:2015-11-20 10:13:04

标签: android android-view surfaceview android-bitmap

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

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

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

谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个:

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()));

答案 1 :(得分:0)

扩展您ImageView并使用Canvas.drawText中的onDraw方法将所有图片上方的文字绘制到ImageView。请勿忘记在drawText之后致电super.onDraw,否则您的文字将会在ImageView的图像下方绘制。