使用TextView进行希伯来语文本的Android设置?

时间:2011-06-10 05:11:34

标签: android textview hebrew settext

我在字符串资源中设置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>

我的代码出了什么问题?

任何使用过其他语言的人,请指导我。

感谢。

2 个答案:

答案 0 :(得分:31)

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

答案 1 :(得分:3)

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

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

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

,结果将是:

 :המר על תוצאת המשחק