2011-07-19 4 views
6

クライアントから提供されたすべてのテキストの長さをピクセル単位で計算する必要があります。 問題は、1つの標準フォントしか提供されず、イタリック体がAndroidによってレンダリングされなければならないということです。知られているAndroidのバグは、斜体(イタリック体で表示)フォントの場合、TextViewの幅が正しく計算されず、テキストの終わりが切り捨てられることです。Android:measureText on斜体レンダリングフォントのペイントオブジェクト

これらのイタリック体の長さを正しく計算する方法はありますか?

これまでのところ私はmeasureTextメソッドとgetTextWidthsメソッドを試しましたが、イタリックと通常のテキストの長さが同じであるため、このバグはAndroidソースのどこかにあると思います。

イタリック体がなく、レンダリングが必要な場合は、TextViewソースコードでTextPaintオブジェクトのskewXパラメータが設定されていることがわかりました。その値は-0.25fです。

このパラメータは何ですか、そしてこのskewX係数に基づいて欠落ピクセルを計算する方法を知っていますか?

+0

ソリューションを見つけましたか? – Igor

答えて

0

テキストを測定するには、細いスペース"\u2009"を使用できます。それを描画する前にそれをトリミングします。テキストセンターを整列させると最良の結果が得られるかもしれません。

関連する問題