1

我在 ImageView 中有一个九补丁图像,并且想将文本绘制到图像的内容区域中。Android 会拉伸图像,并且在不同的屏幕上我无法使用 dp 或 px 等单位。这太不准确了。

如何完成这个使命?=)

4

1 回答 1

3

您可以编写自定义ImageView,并在该onDraw(Canvas canvas)方法中您可以通过以下方式在其上绘制文本:

Paint paint = new Paint()
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setColor(Color.BLACK);
paint.setTextSize(11);
canvas.drawText("your text", x, y, paint);

您可以将文本居中放在ImageView例如:

int imgWidth = getMeasuredWidth();
int imgHeight = getMeasuredHeight();
float txtWidth = paint.measureText("your text");

int x = imgWidth/2 - txtWidth/2;
int y = imgHeight/2 - 6; // 6 is half of the text size
于 2012-07-25T08:22:02.670 回答