我在 ImageView 中有一个九补丁图像,并且想将文本绘制到图像的内容区域中。Android 会拉伸图像,并且在不同的屏幕上我无法使用 dp 或 px 等单位。这太不准确了。
如何完成这个使命?=)
您可以编写自定义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