所以我试图将文本置于其边界内。我正在创建一个大小相对于字符串边界的位图。
Rect bounds = new Rect();
paint.getTextBounds(s, 0, s.length(), bounds);
Bitmap bitmap = new Bitmap(bounds.width() + 1, (int)(paint.descent() - paint.ascent()), Config.ARGB_8888); //+1 to prevent width = 0, which throws exception
然后我将字符串绘制到该位图。
canvas.drawText(s, 1, (i)*paint.descent() - (i+1)*paint.ascent(), paint);
问题是,对于某些字体,如https://www.fontsquirrel.com/fonts/alex-brush,某些字母会被部分切断。位图宽度似乎没问题,但字母没有绘制到中心。
paint.setTextAlign(Align.CENTER);
让情况变得更糟。