使用AnimationDrawable的Android图像动画不起作用

时间:2012-10-19 18:48:43

标签: android animation android-animation

我正在开展一个项目,该项目涉及使用随机生成的一系列图像动画图像。这是我现在的代码不能正常工作(或者至少看起来不起作用):

/**
 * Method to display the current sequence
 * TODO make an animation for the screen to use
 */
public void displaySeq() {
    ad = new AnimationDrawable();
    int j = 0;
    for(Integer i : sequence) {
        switch(i)
        {
        case Constants.RED:
            System.out.printf("%d - RED\n", j);
            ad.addFrame(resources.getDrawable(R.drawable.red_circle), 500);
            break;
        case Constants.BLUE:
            System.out.printf("%d - BLUE\n", j);
            ad.addFrame(resources.getDrawable(R.drawable.blue_circle), 500);
            break;
        case Constants.GREEN:
            System.out.printf("%d - GREEN\n", j);
            ad.addFrame(resources.getDrawable(R.drawable.green_circle), 500);
            break;
        case Constants.YELLOW:
            System.out.printf("%d - YELLOW\n", j);
            ad.addFrame(resources.getDrawable(R.drawable.yellow_circle), 500);
            break;
        default:
            System.out.printf("%d - bad color: %d\n", j, i);
            ad.addFrame(resources.getDrawable(R.drawable.black_circle), 500);
        }
        j++;
    }
    // add a black circle to the end of the animation
    ad.addFrame(resources.getDrawable(R.drawable.black_circle), 500);
    System.out.println("Number of frames: " + ad.getNumberOfFrames());
    indicator.setBackground(ad);

    indicator.post(new Starter());

}

class Starter implements Runnable {
    @Override
    public void run() {
        ad.start();

    }

}

当我运行应用程序并调用此方法时,我在LogCat中看到打印输出,但指示器没有动画。出了什么问题?

1 个答案:

答案 0 :(得分:0)

我实际上已经找到了问题所在。它是由我的XML文件中的错误引起的。基本上,当我在Eclipse中创建layout.xml文件并添加了ImageView(indicator)时,Eclipse将android:src参数设置为我选择的图像。将android:src更改为android:drawable解决了问题。