J'essaie de dessiner le texte arabe sur un Bitmap pour l'affichage:Comment dessiner du texte RTL (arabe) sur un bitmap et le faire commander correctement?
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);
La classe ArabicUtilities est un outil pour remodeler le texte unicode pour que les lettres sont connectées. voir: http://github.com/agawish/Better-Arabic-Reshaper/
Cependant, le bitmap généré ressemble à ceci:
alt text http://imagebin.ca/img/J1EB8DWc.jpg
Quand il devrait ressembler يجري
Je crois que la question est parce que, contrairement à un TextView, la classe Bitmap n'est pas sensible à BiDi, donc elle dessine les lettres de gauche à écrire.
Essayez comme je pourrais, je ne peux pas comprendre comment dessiner le texte dans le bon ordre.
Vous n'avez aucun conseil, mais avez-vous déposé un rapport de bogue? –