8

我正在从字符串资源在 TextView 中设置文本。通常,希伯来语以从右到左的格式工作。当我设置文本时,它会在 LG、三星、索尼手机中设置文本从右到左的格式,但在 HTC 中它不起作用。它在 HTC 中以从左到右的格式工作。即使我将 Gravity 设置为 Java 文件中的 TextView。

TextView 中的文本应根据屏幕大小进行跨度。例如,如果它是 320 x 480,则它显示为 4 行,但如果它是 Galaxy Tab,则可能有 2 行。

这是我的代码片段:

在 Java 中:

private TextView mVersionInfo, mVersionDescriptionOne, mVersionDescriptionTwo, mVersionDescriptionThree;

mVersionInfo = (TextView)findViewById(R.id.VersionInfo);
mVersionDescriptionOne = (TextView)findViewById(R.id.VersionDesc1);
mVersionDescriptionTwo = (TextView)findViewById(R.id.VersionDesc2);
mVersionDescriptionThree = (TextView)findViewById(R.id.VersionDesc3);

mVersionDescriptionOne.setGravity(Gravity.RIGHT);
mVersionDescriptionTwo.setGravity(Gravity.RIGHT);
mVersionDescriptionThree.setGravity(Gravity.RIGHT);

在 XML 中:

<TextView android:id="@+id/VersionDesc1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="@string/versiondesc1" android:textColor="#000000"
        android:layout_marginTop="5dip" android:gravity="right"
        android:layout_alignParentRight="true" android:layout_marginRight="10dip"
        android:layout_below="@+id/Share" android:textSize="13sp"
        android:layout_alignRight="@+id/Body" />
    <TextView android:id="@+id/VersionDesc2"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="@string/versiondesc2" android:textColor="#000000"
        android:layout_alignParentRight="true" android:layout_marginRight="10dip"
        android:layout_below="@+id/VersionDesc1" android:textSize="13sp"
        android:layout_marginTop="5dip" android:gravity="right"
        android:layout_alignRight="@+id/Body" />
    <TextView android:id="@+id/VersionDesc3"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="@string/versiondesc3" android:textColor="#000000"
        android:layout_alignParentRight="true" android:layout_marginRight="10dip"
        android:layout_below="@+id/VersionDesc2" android:textSize="13sp"
        android:layout_marginTop="5dip" android:gravity="right"
        android:layout_alignRight="@+id/Body" />

在字符串资源中:

<string name="versiondesc1">האפליקציה מתחברת לאתר הספק הסלולרי כדי להציג את מצב החשבון. לעיתים, כשאתר הספק איננו עובד תקין לא יהיה ניתן לקבל מידע. באם אתר הספק ישתנה האפליקציה עלולה להפסיק לעבוד. במצב כזה האפליקציה תחזור לעבודה תקינה מיד לאחר שאנו נתאים את שרת התוכנה שלנו לשינויים.</string>
<string name="versiondesc2">הערה: אנחנו לא מייצגים את חברות הסלולר ולא נמצאים איתן בקשר מסוג כלשהו!</string>
<string name="versiondesc3">אם נתקלת בבעיה, השתמש/י בכפתור יצירת קשר על מנת שנוכל לפתור אותה. נשמח לקבל כל משוב על האפליקציה.</string>

我的代码有什么问题?

任何使用过另一种语言的人,请在这里指导我。

谢谢。

4

2 回答 2

31

重力只会影响对齐,不会为文本设置基本方向。它适用于某些设备而不适用于其他设备可能是字体问题,或者可能是操作系统版本问题。尝试在文本开头添加 RIGHT-TO-LEFT MARK 字符 (\u200F)。这可能有助于 HTC 上的显示,并且不会损害已经工作的设备上的任何东西。

于 2011-06-10T05:24:57.530 回答
3

这是我的希伯来语字符串 xml 中的一个示例,感谢 Ted Hopp 的回答:

您需要在导致问题的字符之前添加 '\u200e':

<string name="basic_text1">המר על תוצאת המשחק\u200e:</string>

结果将是:

 :המר על תוצאת המשחק
于 2015-03-19T08:16:32.273 回答