Android如何迭代R.drawable对象

Android如何迭代R.drawable对象,android,for-loop,drawable,Android,For Loop,Drawable,我正在尝试显示一帧一帧的动画,并希望遍历drawables,以便在帧数增加的情况下不必键入它们的所有名称 然而,我似乎找不到如何遍历drawables。我查阅了不少java for loop教程,但它们都只是打印了一些(据我所知)不必在这里使用的东西 以下是相关代码(图像的名称为dude1、dude2等): private void startAnimation(){ animation=新的AnimationDrawable(); 对于(int i=1;i

我正在尝试显示一帧一帧的动画,并希望遍历drawables,以便在帧数增加的情况下不必键入它们的所有名称

然而,我似乎找不到如何遍历drawables。我查阅了不少java for loop教程,但它们都只是打印了一些(据我所知)不必在这里使用的东西

以下是相关代码(图像的名称为dude1、dude2等):

private void startAnimation(){
animation=新的AnimationDrawable();
对于(int i=1;i<4;i++){
animation.addFrame(getResources().getDrawable(R.drawable.dude(i)),100);
}
动画.setOneShot(真);
ImageView ImageView=(ImageView)findViewById(R.id.img);
RelativeLayout.LayoutParams参数=新的RelativeLayout.LayoutParams(80,90);
params.alignWithParent=true;
参数addRule(父项中的相对位置居中);
imageView.setLayoutParams(参数);
imageView.setImageDrawable(动画);
post(新的Starter());
}

谢谢

试试这个
getResources()
需要一个上下文

for (int i=0;i<10;i++){
    animation.addFrame(getResources().getIdentifier("dude" + i,"drawable", getPackageName()),100);
}

for(int i=0;i我认为最后一个答案非常正确,但可能是:

for (int i=0; i <10;i++){
      animation.addFrame(
         getResources().getDrawable(getResources().getIdentifier("dude" + i,"drawable",
             getPackageName()),100);
}

for(int i=0;i我使用了Simon的答案来迭代我的绘图表,这些绘图表被命名为“c1”到“c54”,并放置在一个数组中。下面是我刚刚使用的代码,对我来说很有用

private void getDeckDrawables() {
    for (int i=0; i<54; i++){
        int j = i + 1;
        intArrDeck[i] = getResources().getIdentifier("c"+j,"drawable",getPackageName());
    }
}

starter Runnable中有什么?您可以使用getIdentifier()方法获取drawable的id。这给了我下一个错误:AnimationDrawable类型中的addFrame(drawable,int)方法不适用于参数(int,int)
private void getDeckDrawables() {
    for (int i=0; i<54; i++){
        int j = i + 1;
        intArrDeck[i] = getResources().getIdentifier("c"+j,"drawable",getPackageName());
    }
}
private void getDeckDrawables() {
    intArrDeck[0]=R.drawable.c1;
    intArrDeck[1]=R.drawable.c2;
    intArrDeck[2]=R.drawable.c3;
}