如何绘制一个具有指定边界的填充矩形,并在该矩形内使用 Canvas Android 绘制文本?我试过
mPaint.setColor(Color.GREEN);
canvas.drawText(mText, x, y, mPaint);
mPaint.setColor(Color.BLACK);
canvas.drawRect(x, y, x + w, y + h, mPaint);
但文本不在该矩形内。有哪位朋友可以告诉我如何在考虑文本大小的情况下围绕指定文本绘制一个矩形吗?
这里我有硬编码的 x 和 y 值。你可以改变它们
mpaint= new Paint();
mpaint.setColor(Color.RED);
mpaint.setStyle(Style.FILL);
paint2= new Paint();
paint2.setColor(Color.GREEN);
paint2.setTextSize(50); //set text size
float w = paint2.measureText(s)/2;
float textSize = paint2.getTextSize();
@Override
protected void onDraw(Canvas canvas) {
paint2.setTextAlign(Paint.Align.CENTER);
canvas.drawRect(300-w, 300 - textsize, 300 + w, 300, mpaint);
canvas.drawText(s, 300, 300 ,paint2); //x=300,y=300
}
Edit :
打电话是个坏主意measureText
in onDraw
。你可以在外面这样做onDraw
.
还有一个关于性能以及为什么应该避免分配的视频onDraw
. https://www.youtube.com/watch?v=HAK5acHQ53E
结果快照
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)