相关疑难解决方法(0)

如何将RTL文本(阿拉伯语)绘制到位图并正确排序?

我正在尝试将阿拉伯文字绘制到位图上以供显示:

Bitmap img = Bitmap.createBitmap( (int) f+100, 300, Config.RGB_565);
Canvas c = new Canvas();
c.setBitmap(  img );
mFace = Typeface.createFromAsset(getAssets(),"DejaVuSansCondensed.ttf");
mPaint.setTypeface(mFace);
content = "????";
content = ArabicUtilities.reshape( content );
System.out.println("Drawing text: " + content);
c.drawText(content, 30, 30, mPaint);
Run Code Online (Sandbox Code Playgroud)

ArabicUtilities类是一个重塑unicode文本的工具,因此字母是连接的.请参阅:http://github.com/agawish/Better-Arabic-Reshaper/

但是,生成的位图如下所示:

alt text http://imagebin.ca/img/J1EB8DWc.jpg

它应该看起来像يجري

我相信这个问题是因为,与TextView不同,Bitmap类不支持BiDi,所以它从左边开始绘制字母.

尽我所能,我无法弄清楚如何以正确的顺序绘制文本.

android bidi right-to-left

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

bidi ×1

right-to-left ×1