私はアラビア語の 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 モデルで機能し、他のモデルでは機能しないことです。
具体的に言うと、多くの 2.3.3 Android デバイスでアプリをテストしたところ、アラビア語のテキストが正しく配置されています。ただし、他の 2.3.3 デバイスでは、アラビア語のテキストが左に配置されます (これは間違っています)。
android:gravity="right" を android:gravity="left" に変更すると、問題はデバイスの 2 番目のグループから最初のグループに移行しました。
したがって、私の質問は、特にデバイスのモデル番号に基づいてレイアウトをローカライズする方法がないことを知っている限り、この問題をどのように解決できるかということです。
完全に迷っているので、ご指導をよろしくお願いします。:(
アップデート:
「すべての Android バージョンでアラビア語を正しく配置する方法は?」について検索しました。しかし、すべてのテストデバイスで何も機能していませんでした。何か提案はありますか?Android でアラビア語のテキストを配置するためのベスト プラクティス アプローチがあると確信しています。
更新 2:
CSSスタイルを使用してアラビア語を正しく配置するために、TextViewの代わりにWebViewを使用しようとしました。ただし、アラビア語のテキストが WebView に奇妙な文字として表示されます。
コードは次のとおりです。
mWebView.loadData("<html dir=\"rtl\">الأسم<body></body></html>", "text/html", "UTF-8");
奇妙なことに、アラビア語の Web サイトのテキストは正しく表示されます。だから問題は何ですか?:(