我是android开发的新手。我正在开发一款游戏。它有20张图像名称像num1,num2,num3 ..,num20的图像。
为了阅读所有这些图像,我已经在java中完成了这个
for ( int i=0 ; i<n ; i++)
{
imgarr[i] = Toolkit.getDefaultToolkit().getImage( this.getClass().getResource("images/"+(i+1)+".png"));
}
我的问题是如何在android中做同样的事情?
如何在简单的for循环中将所有这些图像读入位图数组?
我知道在android中我们可以将图像作为fallows读入位图
img = BitmapFactory.decodeResource(getResources(), R.drawable.image_name);
有没有办法在for循环中读取所有这些图像?
感谢。
答案 0 :(得分:1)
您可以构建一个自定义数组,其中包含图像的所有资源ID并使用for循环
例如:
int ids[] = new int[]{R.id.img1, R.id.img2};
for(int id : ids) {
img = BitmapFactory.decodeResource(getResources(), id);
}
答案 1 :(得分:1)
你可以这样做:
for(int i = 0; i < count; i++){
try{
Class drawable = R.drawable.class;
Field f = drawable.getField("num" + i);
int id = f.getInt(null);
img = BitmapFactory.decodeResource(getResources(), id);
}catch(Exception ex){
}
}
但这是一种糟糕的方式。您可以使用Assets文件夹。
答案 2 :(得分:0)
这样做
List<Bitmap> imgList = new ArrayList<Bitmap>();
for ( int i=1 ; i<=n ; i++)
{
imgList.add(BitmapFactory.decodeResource(getResources(), getResources().getIdentifier("num" + i, "drawable", getPackageName())));
}
答案 3 :(得分:0)
像这样定义一个image-id数组
int[] ImgArr = {R.drawable.image1, R.drawable.image2....};
然后你可以像这样迭代:
for ( int i=0 ; i<n ; i++)
{
img = getResources().getDrawable(ImgArr [n]);
}