gpt4 book ai didi

Android 将文本转换为位图(包括字体、颜色和大小)的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 04:00:16 25 4
gpt4 key购买 nike

我正在尝试将字符串转换为位图,最后我找到了解决方案:

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;

}

我的问题是这个解决方案并不是对所有屏幕都适用(因为宽度和高度不正确)并且有点粗糙。

有没有最好的代码来做到这一点?

非常感谢...

最佳答案

不是以像素为单位设置大小,而是将它们设置为倾斜,然后转换为像素。像这样

    final float density = context.getResources().getDisplayMetrics().density;
final float textSizeDips = 10f;
final float textSizePixels = Math.round(textSizeDips * density);

paint.setTextSize(textSizePixels);

这将解决不同屏幕上不同文本大小的问题。

关于Android 将文本转换为位图(包括字体、颜色和大小)的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606264/

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