相关疑难解决方法(0)

如何在Android中支持阿拉伯语文本?

我成功从服务器获取阿拉伯语文本.检索到的文本我希望在代码中显示,但显示框而不是阿拉伯文本.假设t数组值是来自服务器的阿拉伯语文本.

string[] t={" "};
Textview tv = (Textview) findviewByid(R.id.text);
tv.setText(t[0]);
Run Code Online (Sandbox Code Playgroud)

android arabic persian internationalization farsi

71
推荐指数
2
解决办法
7万
查看次数

如何在Android中对齐PreferencesActivity?

PreferencesActivity需要它才能正确对齐,因为我想使用阿拉伯语,我试图使用它android:layout_gravity="right",PreferenceScreen但它没有用.

这是我的XML:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:layout_gravity="right">
        <PreferenceCategory android:title="General Settings">
                <CheckBoxPreference
                        android:title="Full Screen"
                        android:defaultValue="false"
                        android:summary="Always view as Full Screen"
                        android:key="fullScreenPref" />
        <Preference
                android:title="Report Bugs"
                android:summary="Notify us for any Bugs or Errors"
                android:key="bugs"/>
        <Preference
                android:title="About"
                android:summary="Version 1.0.0"
                android:key="about"/>
        </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

这就是我在内部使用XML的方式PreferencesActivity:

addPreferencesFromResource(R.layout.preferences);
Run Code Online (Sandbox Code Playgroud)

java android arabic android-preferences

14
推荐指数
3
解决办法
8572
查看次数

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

我有一个阿拉伯语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>
Run Code Online (Sandbox Code Playgroud)

问题是android:gravity适用于某些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");
Run Code Online (Sandbox Code Playgroud)

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

java android arabic android-layout right-to-left

8
推荐指数
2
解决办法
6587
查看次数