我有一个阿拉伯语 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" 时,问题从第二组设备转移到了第一组。
所以我的问题是如何解决这个问题,尤其是据我所知,没有办法根据设备型号对布局进行本地化。
提前感谢您的任何指导,因为我完全迷路了。:(
更新:
我搜索了“如何在所有 Android 版本上正确对齐阿拉伯语?” 但在我的所有测试设备上都没有发现任何工作。请问有什么建议吗?我确信有一种最佳实践方法可以在 Android 上对齐阿拉伯语文本。
更新 2:
我尝试使用 WebView 而不是 TextView 来使用 CSS 样式正确对齐阿拉伯语。但是,阿拉伯文本在 WebView 中显示为奇怪的字符。
这是代码:
mWebView.loadData("<html dir=\"rtl\">الأسم<body></body></html>", "text/html", "UTF-8");
奇怪的是,阿拉伯语网站的文本显示正确。所以有什么问题?:(