gpt4 book ai didi

android - 使用 Canvas Android 在填充的矩形内绘制文本

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:09 25 4
gpt4 key购买 nike

如何使用 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
}

编辑:

onDraw 中调用measureText 是个坏主意。您可以在 onDraw 之外执行此操作。

还有一个关于性能的视频,以及为什么您应该避免在 onDraw 中进行分配。 https://www.youtube.com/watch?v=HAK5acHQ53E

生成快照

enter image description here

关于android - 使用 Canvas Android 在填充的矩形内绘制文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15609426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com