Android 如何使用循环从id加载多个Drawable?

Android 如何使用循环从id加载多个Drawable?,android,resources,Android,Resources,必须是循环通过此代码的方式: private void loadSprites() { this.sprites[0] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom01); this.sprites[1] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom02); this.sprites[2] = Bitm

必须是循环通过此代码的方式:

private void loadSprites() {
    this.sprites[0] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom01);
    this.sprites[1] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom02);
    this.sprites[2] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom03);
    this.sprites[3] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom04);
    this.sprites[4] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom05);
    this.sprites[5] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom06);
    this.sprites[6] = BitmapFactory.decodeResource(getResources(), R.drawable.ic_boom07);
}

谢谢

您应该将图像放在资产文件夹中。您可以通过他们的文件名访问他们。请参阅。

您可以在一个简单的for循环中完成此操作。。从第一个id开始,在每个循环中递增1。。虽然我不建议你这么做。

如果我理解你的问题,你想要的是

int[] drawables = {R.drawable.ic_boom01,R.drawable.ic_boom02,R.drawable.ic_boom03,R.drawable.ic_boom04,R.drawable.ic_boom05,R.drawable.ic_boom06,R.drawable.ic_boom07}


private void loadSprites() {
for(int i=0; i<this.sprites.length; i++)
    this.sprites[i] = BitmapFactory.decodeResource(getResources(), drawables[i]);
}
int[]drawables={R.drawable.ic_boom01,R.drawable.ic_boom02,R.drawable.ic_boom03,R.drawable.ic_boom04,R.drawable.ic_boom05,R.drawable.ic_boom06,R.drawable.ic_boom07}
私有void loadSprites(){

对于(inti=0;i,请查看下面的代码

首先生成整型数组

int[] mImgArray = { R.drawable.ic_boom01, R.drawable.ic_boom02,
            R.drawable.ic_boom03, R.drawable.ic_boom04, R.drawable.ic_boom05,
            R.drawable.ic_boom06, R.drawable.ic_boom07 };
或者使用下面的代码将此图像设置为ImageView

mImgView1.setImageResource(mImgArray[0]);
您可以使用下面的代码将此图像直接转换为位图并存储到位图数组中

Bitmap mBmpArray=new Bitmap[mImgArray.length];
for(int i=0; i<mImgArray.length; i++)
    mBmpArray[i] = BitmapFactory.decodeResource(getResources(), mImgArray[i]);
}
Bitmap mBmpArray=新位图[mImgArray.length];

对于(int i=0;i您想在哪里显示这些图像??在listview或GridView中?什么?您可以使用反射,正如我对这个问题的回答@KrishnaSuthar所说的,这真的不重要。是的,但我也不想硬编码R.drawable.ic_boom id。不过,感谢堆。再次感谢,我正在寻找一个优雅的解决方案,比如资产经理。非常感谢您的回答。很好!AssetManager是我所需要的。谢谢!谢谢,但是,这就是我试图避免在数组中硬编码大量ID的原因。