У меня есть арабское приложение для 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");
Странно то, что текст на арабских сайтах отображается корректно. Так в чем проблема?:(