Back to project page mobilib.
The source code is released under:
MIT License
If you think the Android project mobilib listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.datdo.mobilib.widget; /* ww w. j a v a 2s.c o m*/ import com.datdo.mobilib.util.MblUtils; import android.content.Context; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.widget.ImageView; public class MblSequenceImage extends ImageView { private int mCurrentIndex; private int[] mImageResIds; private long mInterval; private boolean mRepeat; private MblSequenceImageCallback mCallback; private static Handler sHandler = new Handler(Looper.getMainLooper()); private Runnable mOnTimerTask = new Runnable() { @Override public void run() { MblUtils.executeOnMainThread(new Runnable() { @Override public void run() { setImageResource(mImageResIds[mCurrentIndex]); if (mCallback != null) mCallback.onShow(mCurrentIndex); if (mCurrentIndex == mImageResIds.length-1) { if (mRepeat) { if (mCallback != null) mCallback.onReset(); } else { if (mCallback != null) mCallback.onFinish(); stop(); return; } } mCurrentIndex = (mCurrentIndex+1) % mImageResIds.length; sHandler.removeCallbacks(mOnTimerTask); sHandler.postDelayed(mOnTimerTask, mInterval); } }); } }; public MblSequenceImage(Context context) { super(context); } public MblSequenceImage(Context context, AttributeSet attrs) { super(context, attrs); } public MblSequenceImage(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void init(int[] imageResIds, long interval, boolean repeat, MblSequenceImageCallback callback) { mImageResIds = imageResIds; mInterval = interval; mCurrentIndex = 0; mRepeat = repeat; mCallback = callback; } public void start() { stop(); mCurrentIndex = 0; mOnTimerTask.run(); } public void showImageAtIndex(int index) { setImageResource(mImageResIds[index]); mCurrentIndex = index; } public void stop() { sHandler.removeCallbacks(mOnTimerTask); } public static interface MblSequenceImageCallback { public void onFinish(); public void onReset(); public void onShow(int index); } }