0

ビットマップの画像リソースを動的に変更したい。しかし、ドローアブルクラスの名前でそれらを呼び出すことはできません。

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.getImage(foldername + "/" + imagename));

私はそのようなことをする必要がありますが、これを行う適切な方法を見つけることができませんでした。、

編集済み

もっと明確にすべきだと思います。画像をドローアブルフォルダに保存すると、他のフォルダに分けられます。

例えば;

drawable / imageset1、drawable / imageset2、

そして、ユーザー入力に応じてビットマップの画像リソースを変更したいと思います。

例:ユーザーは最初のスピナーからimageset5を選択し、別のスピナーからimage5.pngを選択します。

4

5 に答える 5

2

私はこれがあなたが望むことをすることを願っています

BitmapFactory.decodeResource(getResources(), getResources().getIdentifier(foldername + "/" + imagename , "drawable", getPackageName());

編集:

上記のコードは、ドローアブルフォルダ内のサブディレクトリを許可しないAndroidルールに従っている場合にのみ機能するため、上記のコードは、ドローアブルから画像に直接アクセスする場合にのみ機能します。

BitmapFactory.decodeResource(getResources(), getResources().getIdentifier( imagename , "drawable", getPackageName());

これらのリンクが説明しているように

res / drawable/"folder"にアクセスする方法

Androidのドローアブルディレクトリにサブディレクトリを含めることはできますか?

于 2012-07-06T10:21:40.783 に答える
0

ドローアブルフォルダに保存されているリソースですか?次に、BitmapFactoryからこのメソッドを試してください

public static Bitmap decodeResource (Resources res, int id)

どこ

res = getResources()

idは次のようなドローアブルのIDです

R.drawable.picture

こちらをチェックしてください

于 2012-07-06T10:20:38.060 に答える
0

あなたはこのようにすることはできません。すべての画像をドローアブルに追加して、次のように使用する必要があります

myImage.setBackgroundResource(R.drawable.imageName)

または、Webから画像をダウンロードした後、次のように申請できます。

myImage.setBitmap(BitmapFactory.decodeStream(in));

でビットマップを取得するにはInputStream

于 2012-07-06T10:21:29.127 に答える
0

画像リソースの1つの配列を作成します

int []a = int[]
{
   R.drawable.one,
   R.drawable.two,
   R.drawable.three,
   R.drawable.four,
};

次に、ループでアクセスします

for(int i=0;i<a.length;i++)
{
   //  a[i]
}
于 2012-07-06T10:18:28.513 に答える
0

次のことを試してください:「imagename」という名前の画像はフォルダ内にある必要があります

String IMAGE_FOLDER_NAME = "YOUR_IMAGE_CONTAINING_FOLDER";

ここで、次のコードを使用します。

String imagename = "YOUR_IMAGE_NAME";    
String PACKAGE_NAME=getApplicationContext().getPackageName();    
int imgId = getResources().getIdentifier(PACKAGE_NAME+":"+IMAGE_FOLDER_NAME+"/"+imagename , null, null);
System.out.println("IMG ID :: "+imgId);    //    check this in log
System.out.println("PACKAGE_NAME :: "+PACKAGE_NAME);    //    check this in log
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),imgId);
于 2012-07-06T11:04:56.160 に答える