「drawableTop」として TextView にビットマップを表示するアプリがあります。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawableTop="@drawable/bitmap"
android:gravity="center"
android:text="@string/text" />
ビットマップは、res/drawable フォルダー内の PNG ファイルから取得されます。bitmap.png と呼びましょう。
複数の画面サイズと密度をサポートする必要があり、最も安価な方法 (res/* フォルダーに必要な PNG ファイルの数) を見つけたいと考えています。
さまざまな密度: 電話のみ
res/drawable-xhdpi フォルダーに bitmap.png を配置するだけで十分であるという結論に達しました。密度の高い端末ではそのまま表示されますが、密度の低い端末では自動的に縮小表示されます。つまり、res/drawable-hdpi、res/drawable-mdpi などに bitmap.png の低解像度バージョンを用意する必要はありません。基本的に、すべての電話で PNG ファイルの1 つのバージョンだけで十分です。
さまざまな密度: 錠剤も
ここで、大画面と超大画面のタブレットもサポートしたい場合に問題が発生します。タブレットでは、アイコンの縦横比を携帯電話と同じにしたい: 携帯電話でビットマップが画面の 1/4 を占める場合、タブレットでは画面の 1/4 を占めるようにします。以前と同じ PNG ファイルを再利用することはできません。または、タブレットのピクセル数が多いため、小さすぎるように見えます...したがって、タブレットの場合は、より高い解像度の PNG が必要です。これは、大画面と特大画面の両方に当てはまります。
その結果、3 つのフォルダーと 3 つのバージョンの PNG が必要になります。
1: res/drawable-xhdpi/bitmap.png
2: res/drawable-large-xhdpi/bitmap.png
3: res/drawable-xlarge-xhdpi/bitmap.png
ただし、1 と 2 は基本的に 3 の低解像度バージョンです。
3つではなく単一のフォルダを持つ簡単な方法はありますか?