安卓设置为希伯来语文本的TextView



我正在字符串资源的TextView中设置文本。通常,希伯来语采用从右到左的格式。当我设置文本时,它在LG、三星、索尼手机中设置了从右到左的文本格式,但在HTC中它不起作用。它在HTC中以从左到右的格式工作。甚至我还在Java文件中将Gravity设置为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>

我的代码出了什么问题?

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

谢谢。

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

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

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

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

结果将是:

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

最新更新