6

drawable-mdpi と drawable-ldpi の 2 つのドローアブル フォルダーがあります。

Android がデバイスの密度に応じて適切なアートワークを自動的に選択するように、この構造を維持したい (つまり、画像を /assets に移動したくない)。小さいデバイスで。

コードから drawable-ldpi フォルダーにアクセスする方法はありますか? 私は次の答えかもしれないと思ったが、うまくいかなかった:

    Uri path = Uri.parse("android.resource://com.example.test/res/drawable-ldpi/icon");
    imageview.setImageURI(path); //assume imageview is already initialized etc.

java.io.FileNotFoundException (no such file or directory) 警告が表示されます (クラッシュはしませんが、どちらもロードされません)。

助けてくれてどうもありがとう!

4

3 に答える 3

2

おそらくあまり役​​に立ちませんが、Resources.getDrawableForDensity() がありますが、これは API 15 用です :-(

于 2012-10-16T03:48:41.273 に答える
0

一般に、HDPI バージョンを使用する必要がある場合は、画像の HDPI バージョンのみを保持してください。低密度の電話は、選択の余地がないため、自動的に HDPI ドローアブルを使用します (つまり、そのドローアブル名を持つ低解像度の画像は存在しません)。 )。

hdpi バージョンと mdpi バージョンを本当に切り替える必要がある場合は、別のファイル名を使用してプログラムで交換するか、XML 要素を表示/非表示にすることをお勧めします。

于 2012-08-28T19:14:53.760 に答える
-1
ImageView image = (ImageView)findViewById(R.id.imageView);
Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.abc);
image.setImageBitmap(bm);

hdpi および mdpi の概念に関する詳細については、このリンクもお読みください。

于 2012-09-03T09:08:01.817 に答える