私のアプリは文字列を正確に測定できることが重要です。私はこれを行うにはPaint.measureText()
を使用しています。残念なことに、4.4では、このメソッドは正確な値を返さないように変更されました。代わりに、これは最大値を返します。誰かが私がテキストを正確に測定するのに使うことができる別の方法を知っていますか、または他の提案がありますか?Android:4.4では、Paint.measureText()は下位互換性がありません。回避策はありますか?
Androidのソース:
Android 17
return w*mInvCompatScaling;
Android 18
return (float) Math.ceil(w*mInvCompatScaling);
おそらく、reflexionを使用してmInvCompatScalingとnative_measureTextにアクセスできます。 – njzk2
Yikes、これは本当に他の問題のように感じられるもののかなり大きな変更です:https://github.com/android/platform_frameworks_base/commit/8e04840f38a16f806754dfca3de50c2548e67913 njzk2が示唆しているように、あなたは 'reflectionを介して' native_measureText'を呼び出そうとしましたか? – CodingIntrigue
好奇心の高まりから、テキスト長のサブピクセル測定のユースケースは何ですか?おそらく、あなたの大規模なユースケースに対する他の解決策があります。 – CommonsWare