gpt4 book ai didi

java - android:gravity ="right"不适用于阿拉伯语和其他 RTL 语言的所有设备

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:47 25 4
gpt4 key购买 nike

我有一个阿拉伯语 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");

奇怪的是阿拉伯语网站的文字显示正确。所以有什么问题? :(

最佳答案

这是预期的行为。您可能不会使用 gravity="right",而是使用 gravity="end",与您应用于 gravity="left" 的想法相同您可以使用 gravity="start",以及 layout_marginStart 而不是 layout_marginLeft

这样,Android 将根据位置将文本置于“开始”方向。 (对我们美国人来说,我们开始左边开始写,我们结束右边,但是阿拉伯人右边开始,在左边结束

您可以使用 getLayoutDirectionFromLocale(null) 方法获取布局/文本方向,这将返回 View.LAYOUT_DIRECTION_LTR(从左到右)或 View.LAYOUT_DIRECTION_RTL(从右到左,如阿拉伯语)。

更多信息可以查看here

关于java - android:gravity ="right"不适用于阿拉伯语和其他 RTL 语言的所有设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com