文字列をビットマップに変換しようとしていますが、最終的に解決策を見つけました:
public static Bitmap textToBitmap(Context c, String text, String typeface, int size, int color){
Paint paint = new Paint();
paint.setTextSize(size);
paint.setTextAlign(Paint.Align.LEFT);
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setColor(color);
Typeface tf = Typeface.createFromAsset(c.getAssets(),typeface);
paint.setTypeface(tf);
int width = (int) (paint.measureText(text) + 0.5f); // round
float baseline = (int) (paint.ascent()*(0.80f) + 0.5f);
int height = (int) (paint.descent()*(0.5f) - paint.ascent()*(0.70f) + 0.5f);
Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
int y = (int) (baseline*(-1));
Canvas canvas = new Canvas(image);
canvas.drawText(text, 0, y, paint);
return image;
}
私の問題は、このソリューションがすべての画面でうまく機能せず (幅と高さが正しくないため)、少し粗いことです。
これを行うための最良のコードはありますか?
どうもありがとう...