android:gravity="right" работает не на всех устройствах для арабского и других языков с письмом справа налево

У меня есть арабское приложение для Android, и вот XML-код.:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/greygradientbackground">
<ImageView android:id="@+id/logo"
    android:layout_width="150dp"
    android:layout_height="fill_parent"
    android:scaleType="centerCrop"
    android:layout_margin="5dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true" />
<TextView android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:textColor="#000000"
    android:layout_gravity="center_vertical|right"
    android:gravity="right"
    android:layout_toLeftOf="@id/logo"/>
</RelativeLayout>

Проблема в том, что android:gravity работает на некоторых моделях Android, а на других нет.

Чтобы быть более конкретным, я протестировал приложение на многих устройствах Android 2.3.3, и арабский текст выровнен правильно. Однако на других устройствах версии 2.3.3 арабский текст выравнивается по левому краю (, что неверно).

Когда я сменил android:gravity="right" на android:gravity="left", проблема переместилась со второй группы устройств на первую.

Итак, мой вопрос заключается в том, как я могу решить эту проблему, тем более, что, насколько я знаю, нет способа локализовать макеты на основе номера модели устройства.

Заранее спасибо за любые указания, потому что я полностью потерян.:(

ОБНОВЛЕНИЕ:

Я искал вопрос «Как правильно выровнять арабский язык во всех версиях Android?» но не нашел ничего работающего на всех моих тестовых устройствах. Любые предложения, пожалуйста? Я уверен, что для выравнивания арабского текста на Android существует передовой подход.

ОБНОВЛЕНИЕ 2:

Я попытался использовать WebView вместо TextView для правильного выравнивания арабского языка с помощью стилей CSS. Однако арабский текст отображается в WebView как странные символы.

Вот код:

mWebView.loadData("<html  dir=\"rtl\">الأسم<body></body></html>", "text/html", "UTF-8");

Странно то, что текст на арабских сайтах отображается корректно. Так в чем проблема?:(

8
задан j0k 5 June 2013 в 11:36
поделиться