如何为Android创建图像幻灯片?

时间:2011-09-10 09:59:42

标签: android

我想为Android开发一个图像幻灯片或动画,如Gif动画。将有3或4张图像,每张图像将交替显示。

2 个答案:

答案 0 :(得分:3)

我会使用一个ViewFlipper并创建一个线程,该线程在帧之间休眠,然后显示下一个图像。

public class YourFlipperActivity extends Activity {

protected void yourFlipperForward() {
    // Set animation
    tflipper.setAnimation(AnimationUtils.loadAnimation(
            YourFlipperActivity.this, R.anim.slide_in));

    // Show next step
    tflipper.showNext();

}

protected void yourFlipperBack() {
    // Set animation
    tflipper.setAnimation(AnimationUtils.loadAnimation(
            YourFlipperActivity.this, android.R.anim.slide_in_left));

    // Show next step
    tflipper.showPrevious();

}

private ViewFlipper tflipper;

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    setContentView(R.layout.your_layout);

    tflipper = (ViewFlipper) findViewById(R.id.your_flipperid);
}

public void close(View v) {
    finish();
}

public void flipNext(View v) {
    yourFlipperForward();
}

public void flipPrevious(View v) {
    yourFlipperBack();
}
}

接下来,您将要创建一个循环flipNext方法的aSync任务。

类似的东西:

private class YourPollTask extends AsyncTask<Integer, Void, Integer> {
    /**
     * The system calls this to perform work in a worker thread and delivers
     * it the parameters given to AsyncTask.execute()
     */
    protected Integer doInBackground(Integer... millis) {
        try {
            int waited = 0;
            int duration = millis[0].intValue();
            while (waited < duration) {
                Thread.sleep(1000);
                waited += 1000;
                flipNext();
                }
            }
        } catch (InterruptedException e) {
            // do nothing
        }

        return 1;
    }

祝你好运。

或者,如果您想使用实际的动画gif,可以使用免费的GifSplitter。不过,我不建议使用GIF动画,因为它们非常古老。

答案 1 :(得分:0)

请查看Android APIDemo.