私の Android アプリには、サイズや密度に関係なく、すべての画面で正確に測定する必要がある定規があります。ルーラーは、 を介して画像ビューに設定したドローアブル リソースですBitmapFactory
。
私の最初のアプローチは、ビットマップを画像ビューにlayout_width
設定することでした。その相対値は固定の 50mm (基礎となる png の正確な幅) に設定され、スケール タイプはFIT_CENTER
です。
Android の事前スケーリングが非常に妨げになることがわかったので、オプションandroid:anyDensity="true"
の使用と組み合わせてマニフェストで宣言することにより、このプロセスを無効にしようとしました。BitmapFactory
inScaled = "false"
私が使用している定規ビットマップは、幅 50 mm の 320 dpi png です。私の考えは、低密度の画面で正確に必要な幅に簡単に縮小できる高解像度の画像を提供することでした.
上記の方法は、ベータ テスト済みのほぼすべてのデバイスで正常に機能しています。しかし、HTC Evo 4G では、定規が大きすぎます。Android 2.3.5 を実行する後者のデバイスは、これまでに報告された唯一の失敗です。