1

Android が dpi プロファイルを使用してビットマップをスケーリングする方法が正しくないように思えます。

たとえば、次のように定義された、画面領域全体をカバーするための320x533画像があります。

<ImageView
    android:src="@drawable/background"
    android:layout_width="320dp"
    android:layout_height="533dp" />

hdpi (240 または 1.5) では、画像は 480x800 に正しくスケーリングされます。ただし、xhdpi (320 または 2.0) ではそうではありません。つまり、画像は640x1066になりますが、実際の電話領域は 720x1280 または 1080x1920 または他の同様の解像度になる可能性あります

ImageView.scaleType (すべてのオプション) を調整しようとしましたが、それでも画像が正しくスケーリングされません。これを処理する正しい方法は何だと思いますか?ImageView をサブクラス化し、Java でスケーリングを処理する必要がありますか、それとも基本的なものが欠けていますか?

4

1 に答える 1

2

「ImageView をサブクラス化し、Java でスケーリングを処理する必要があります」いいえ

DPI 値を取得でき、解像度値も取得できます。必要なピクセル数を計算できます。

オプション 2 は、Android dpi に基づいて異なるディレクトリを使用することです。(描画可能であるだけでなく、Google検索で正確に方法がわかります)

于 2012-12-26T12:27:15.537 に答える