阿拉伯语文本到位图转换

时间:2015-10-22 12:36:14

标签: android bitmap arabic

我尝试了以下方法将我的阿拉伯文字转换为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;
    }
}

2 个答案:

答案 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,设置这个文本,然后获得绘图缓存。