8

文字列リソースから TextView にテキストを設定しています。通常、ヘブライ語は右から左の形式で機能します。テキストを設定すると、LG、Samsung、Sony Phone ではテキストの右から左への形式が設定されますが、HTC では機能しません。HTC では、Left-To-Right 形式で機能します。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

重力は配置にのみ影響し、テキストの基本方向は設定しません。一部のデバイスで動作し、他のデバイスでは動作しないということは、フォントの問題か、OS のバージョンの問題である可能性があります。テキストの先頭に 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 に答える