Paint/Canvas を介して画面にテキストを描画するカスタム View コンポーネントを使用するアプリケーションを使用しています。
次のコードを使用して (canvas.drawText() を呼び出す前に)、テキストを斜体にしています。
mPaintText.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));
これは、Samsung Galaxy Nexus で動作します。しかし、Samsung Epic 4g (galaxy S)、Samsung Epic Touch (Galaxy SII)、Samsung Transform ultra では、テキストはまだイタリック体ではありません。
これらのサムスンのデバイスの一部がイタリック体のテキストをそのように設定できない理由を知っている人はいますか? TextView がある場合はどちらかを使用できるため、デバイスが斜体テキストをレンダリングできることはわかっています。
tv.setText(Html.fromHtml("<i>sometext</i>");
Javaまたは
android:textStyle="italic"
私のテキストはイタリック体で表示されます。
キャンバスの drawText() メソッドを設定して、これらのデバイスで動作する可能性のある斜体のテキストを描画する別の方法を知っている人はいますか?
編集:
これは、後でコメントで結果を試したいくつかの方法のリストです。SERIF が動作する唯一のフォントのようです。
mPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.ITALIC) //Nothing
mPaint.setTypeface(Typeface.create(Typeface.DEFAULT_BOLD, Typeface.ITALIC) //Nothing
mPaint.setTypeface(Typeface.create(Typeface.SERIF, Typeface.ITALIC) //omg it is italic...But serifs look gross.
mPaint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC) //Nothing
mPaint.setTypeface(Typeface.create(Typeface.MONOSPACE, Typeface.ITALIC) //Changes font, but still no italic.
mPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD_ITALIC) //Bold but no italic
もう一度編集:この関数を作成するために、イタリック体のロボット フォントをアセット フォルダーに追加し、それをフォントとして適用しました。このように追加せずに機能させる方法を誰かが見つけたら、私はまだ興味があります。