我想为Android开发一个图像幻灯片或动画,如Gif动画。将有3或4张图像,每张图像将交替显示。
答案 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.