首先感谢以下两篇文章
http://blog.csdn.net/eyishion/article/details/51824520
http://blog.csdn.net/maximuskiang/article/details/36618585
先试的第一篇文章中的
mPaint.
getTextBounds(
text,
0, text.length(), rect);
int width = rect.width();//文本的宽度
int height = rect.height();//文本的高度
方法获得设置为bitmap的高度,但是在4.5英寸,854*480像素的oppoA11上测试,会出现转化为bitmap后的字体的高度小的问题,因此根据第二篇文章稍微修改了一下,在大部分手机上都可以进行适配,方法如下:
int width = (
int) (paint.measureText(name))
;
Paint.FontMetrics
fm = paint.getFontMetrics()
;
int height = (
int) ((
int) Math.
ceil(
fm.
descent-
fm.
top) + TextUtil.
dpToPx(getContext()
,2.0f))
;
final Bitmap
bmp = Bitmap.
createBitmap(
width, height,
Bitmap.Config.
ARGB_8888)
;
Canvas
canvas =
new Canvas(
bmp)
; canvas.drawColor(Color.
parseColor(
"#FFEAA6A6"))
;
canvas.drawText(name
, rect.left
, height - TextUtil.dpToPx(getContext()
,3.5f)
, paint)
转载请注明原文地址: https://ju.6miu.com/read-968691.html