3

Android で TextView を操作しているときに遭遇した興味深いこと (バグ?) があります。

次の属性を持つテキストビューがあります(簡潔にするために切り取られています):

<TextView
    android::id="@+id/myId"
    android:text="Some Temporary Text 1234"
    android:textSize="7sp"
    android:typeface="monospace"
    ...
/>

これは、カーニングが次のようにこれらのプロパティを設定するテキストビューと異なることを除いて、期待どおりに表示されます。

TextView textView = (TextView) xxx.findViewByID(R.id.myId);
textView.setTextSize(7);
textView.setTypeface(Typeface.MONOSPACE);

コードでのビューの構築から XML への移行時に出力が異なる理由を突き止めようとして、壁に頭をぶつけていました。デバイスが 1 つしか接続されていなかったので、何が起こっているのかわかりにくかったです。

そこで、各方法でデバイスのスナップショットを撮り、Photoshop を使用してテキストを重ね合わせました。 テキストとフォントは同じですが(つまり、ピクセルごとに文字を並べることができます) 、カーニング(文字間のスペース)が異なっていました!

そのテキストビューのみについて、XMLではなくコードで設定するように切り替え、再度比較しました....それらは同一です。

ここでは、2 つの出力の比較を示します。上部は XML で行われます。下部はコードで行われます。 ここに画像の説明を入力

編集:写真に「INT」が表示されていないのは、例をキャプチャしたときに写真が切り取られたためです。テキスト文字列は同じで、「INT」が存在します....絵から外れています。

ですから、そこには間違いなく違いがあります。ただし、実際の文字は同じであることに注意してください。

XML に何か足りないものはありますか? カーニングに関するオプションを検索しましたが、カスタム フォントをインストールする以外に (これはやりたくありません)、Android でカーニングを調整する方法がわかりません。方法はありますか?これはアンドロイドのバグですか?

私は問題を回避できますが、コードが本当に場違いなので、コードを削除しようとしていました.

4

0 に答える 0