2012-11-28 10 views
11

表示するデータによっては、テキストビューのフォントをイタリック体に変更したい場合があります。私のギャラクシーネクサス上Typeface.ITALICがギャラクシーノート2で動作していませんノート2

、それは単に

textView.setTypeface(font, iWantItalics ? Typeface.ITALIC : Typeface.NORMAL); 

の場合だと、それは見事に動作します。

問題は、テストするために新しいGalaxy Note IIを取得しているということです。いいえ、イタリック体ではありません。

レディングSamsung devices supporting setTypeface(Typeface.Italic)?ノートのAndroidビルドのバグであるという印象を受けるので、Robotoフォントにはイタリック体がありません。私はそのスレッドと同様の他のすべてのアドバイスを試してみました(Typeface.defaultFromStyle(Typeface.ITALIC)Typeface.create(null, Typeface.ITALIC)、など)運がありません。

私の問題は回避策が使用されているスレッドから男がassetsディレクトリにRoboto TTFをコピーして、そこからフォントを作成していたということですが、どのような自分の携帯電話でデフォルトのフォントを持つ人々はどうですか?私はロボトを強制したり、さらに悪いことに、書体が正常でRobotがそうでなければ他のフォントを使用することは望ましくありません。

誰かが私のアイデアを持っていますか?ありがとう。

+0

私はあなたが参照した質問を作成しました。その価値のあるものについては、正しく動作しなかったデバイスに対処する方法は他にありませんでした。悪い知らせをして申し訳ありません。誰かがもっと良い解決策を出してくれることを願っています。) – FoamyGuy

+0

このようなハイエンドの新しいデバイスにこのような愚かなバグがあるのは信じられないほどですね。 – Serandel

+0

私はサムスンのフォーラムの開発者の関心を持っているので、希望があります。 :) http://developer.samsung.com/forum/thread/typefaceitalic-not-working-on-galaxy-note-2/77/209984 – Serandel

答えて

14

このバグの回避策としては、テキストを斜体に(壊れたサムスンのデバイス上で動作しているようです)このように設定することができます

textView.setText(setTextStyleItalic(textView.getText()); 

を、あなたは、この方法が必要です。

public static CharSequence setTextStyleItalic(CharSequence text) { 
    final StyleSpan style = new StyleSpan(Typeface.ITALIC); 
    final SpannableString str = new SpannableString(text); 
    str.setSpan(style, 0, text.length(), 0); 
    return str; 
} 
+0

魅力的な作品です。よくやった! – Serandel

4

別の簡単な解決方法は、次のようにすることです:

関連する問題