我尝试了以下方法将我的阿拉伯文字转换为Android中的位图。但该函数始终返回null。谁能告诉我发生了什么?
my String =“نقد”
public Bitmap StringToBitMap(String encodedString) {
try {
byte[] encodeByte1 = encodedString.getBytes("UTF-8");
String base64String = Base64.encodeToString(encodeByte1, Base64.DEFAULT);
byte[] encodeByte = Base64.decode(base64String, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
return bitmap;
} catch (Exception e) {
e.getMessage();
return null;
}
}
答案 0 :(得分:1)
它不会像这样工作。 decode
表示它将解压缩字节(通常来自JPG或PNG格式)。
如果你想要文本到位图,你必须自己绘制位图。类似的东西。
String text = "your text";
// create a text paint
TextPaint tp = new TextPaint();
// configure text paint
... see on the link below how to configure TextPaint
// based on the configuration, get size in pixels
int width = (int)tp.measureText(text);
int height = text height ?
// create bitmap with proper size
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
// create canvas to execute drawing
Canvas canvas = new Canvas(bitmap);
// draw on the bitmap
canvas.drawText(text, 0, height/2, tp);
<强> TextPaint:强> https://developer.android.com/reference/android/text/TextPaint.html
答案 1 :(得分:0)
你正在使用有趣的方式来做这件事(显然不会起作用),无论如何,你可以使用canvas drawText作为你的目的,或者你也可以创建TextView,设置这个文本,然后获得绘图缓存。