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

使用Canvas Android在填充矩形内绘制文本,第1张

概述如何绘制带有指定边界的填充矩形,并使用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); 但文字不在那个矩形内. 如何绘制带有指定边界的填充矩形,并使用Canvas Android绘制该矩形文本?我试过了

mPaint.setcolor(color.GREEN);canvas.drawText(mText,x,y,mPaint);mPaint.setcolor(color.BLACK);canvas.drawRect(x,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,paint2); //x=300,y=300            }

编辑:

在onDraw中调用measureText是个坏主意.你可以在onDraw之外做到这一点.

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

结果快照

总结

以上是内存溢出为你收集整理的使用Canvas Android在填充矩形内绘制文本全部内容,希望文章能够帮你解决使用Canvas Android在填充矩形内绘制文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存