12

以下のスクリーンショットは私の問題を示しています。

1 つ目EditTextは上にシフトされたアラビア語のヒントを示していますが、2 つ目EditTextは参考用であり、英語版が完全に問題ないことを示しています。についても同様Buttonです。

strings.xml次のように文字列を宣言しました。

<string name="ar_login">دخول</string>

問題のスクリーンショット

これは、EditText のヒントを設定する方法です。

UserName.setTypeface(ArabicFont);
String hint = getString(R.string.ar_HintUserName);
....
UserName.setHint(hint);

更新: 私はこれを使用しましたが、役に立ちません:

UserName.setGravity(Gravity.CENTER_VERTICAL);

しかし、これで Text は少し下に移動しました。しかし、私はそれが一般的ではないと思います:

UserName.setPadding(0,15,0,0);

で単語が下に移動しますPaddingEnglish

更新 2: もともとアラビア語のテキストは分離されています。文字ごとに表示されることを意味します。彼らに参加するために、私はこのアラビア語のリシェイパーを使用していました。コードをダウンロードするには、このリンクを確認してください

アラビア語のテキストを再形成してからヒントTextViewとして設定するとEditText's、上に移動しましたが、再形成しなくても問題ありません。

だから、reshapeクラスを変更する必要があるか、テキストビューを単語を分割しないようにする必要があるかどうかを推測します。しかし、どこに行けばいいのかわからない?

4

3 に答える 3

3

Androidがアラビア語の単語を別々の文字に分割する理由をまだ見つけられません.

関数では、reshape誤っ\nて最後に追加していましたが、削除するだけで問題は解決します。

于 2011-07-11T05:14:39.650 に答える
1

あなたが使用しているフォントファイルに問題があると確信しています。

[申し訳ありませんが、私の評判が低いため、スクリーン ショットをアップロードすることは許可されていません :(]

レイアウトについては、テキストを xml で、書体をコードで設定していました。また、パディング/重力などの属性を設定していません。しかし、それは私にとってはうまくいきました。

したがって、要件に一致するスタイルのフォント ファイルを使用すると、問題が解決することを保証できます。

お役に立てれば幸いですが、 DroidSansFallback.ttfからフォント ファイルを取得したかどうかは わかりません

于 2011-07-01T10:03:02.190 に答える
0

ただの推測:) ...、

  1. アラビア語フォントのサイズが小さい場合はどうなりますか? [この場合、Gravity.CENTER_VERTICAL が機能するはずです :( ]

  2. これがそのフォントファイルのスタイルかもしれません。アラビア語のテキスト用に別のフォント ファイルを試してみませんか?

于 2011-06-29T09:40:39.103 に答える