3

私のアプリでは、2 つまたは 3 つの異なるサイズの同じ画像が必要です

または、別の drawable-folder から drawables を取得することが可能かどうか疑問に思います (つまり、異なる解像度の同じ画像がそのように利用可能です)。

それ以外の場合は、各ドローアブル フォルダー (mdpi、hdpi、xhdpi) に同じ画像を数回コピーする必要があります。

例: hdpi フォルダーにドローアブル ima があり、mdpi フォルダーと xhdpi フォルダーで利用可能な同じ画像が必要です。

下手な英語ですみません

私を助けてくれてありがとう

4

3 に答える 3

0

名前の付いたフォルダmdpi, hdpi, xhdpiはランダムなデバイス用です。つまり、ランダムな画面のデバイス用です。画面から考えると4種類のAndroidデバイスがあります。小、通常、大、特大、そしてそれがこれらのフォルダがある理由です、なぜあなたはあなたの写真の名前を変更したくないのですか?それが役に立たなかった場合、あなたはあなたの質問をより認識しやすく説明できますか?私は普通に質問をしているのかわかりません:)

よろしくHaykNahapetyan

于 2012-12-13T13:43:44.433 に答える
0

私があなたを完全に理解しているかどうかはわかりませんが、私としては、ドローアブルを論理的に整理し、それらをリソースではなくアセットフォルダーに配置する必要があります。その後、必要に応じてそれらを使用できます。

また、別の画面からリソースにアクセスする方法はないと思います。

あなたが正しく投稿することを理解していただければ幸いです。

EDIT
API レベル 15でResources.getDrawableForDensity()メソッドが導入されました。私が理解している限り、古いバージョンで起動する方法はありません。

于 2012-12-13T14:06:31.347 に答える
0

プログラムでこのようにしてみてください..

InputStream is=this.getResources().getAssets().open("drawable.png");

is=this.getResources().openRawResource(R.raw.myDrawable); 

また

パスを使用する場合は、次を試してください。

private void showImage() {
    String uri = "drawable/icon";

    // int imageResource = R.drawable.icon;
    int imageResource = getResources().getIdentifier(uri, null, getPackageName());

    ImageView imageView = (ImageView) findViewById(R.id.myImageView);
    Drawable image = getResources().getDrawable(imageResource);
    imageView.setImageDrawable(image);
}

ただし、R参照を使用することをお勧めします。

int imageResource = R.drawable.icon; 

Drawable image = getResources().getDrawable(imageResource);

ソース

drawable-hdpi drawable-mdpi,drawable-ldpi画面の解像度に応じて画質を変えるための異なるフォルダーです。アイデアは、同じ画像を異なる解像度の異なるフォルダーに入れることです...

于 2012-12-13T13:56:53.127 に答える