android实现自动滚动的Gallary控件效果
程序员文章站
2023-11-12 09:49:10
本文实例讲述了android实现自动滚动的gallary控件。分享给大家供大家参考。具体如下:
import java.util.timer;
import j...
本文实例讲述了android实现自动滚动的gallary控件。分享给大家供大家参考。具体如下:
import java.util.timer; import java.util.timertask; import android.content.context; import android.os.handler; import android.util.attributeset; import android.util.log; import android.view.keyevent; import android.view.motionevent; import android.widget.gallery; public class homegallery extends gallery { /** * 这里的数值,限制了每次滚动的最大长度,图片宽度为480px。这里设置600效果好一些。 这个值越大,滚动的长度就越大。 * 也就是会出现一次滚动跨多个image。这里限制长度后,每次滚动只能跨一个image */ private static final int timeranimation = 1; private static final int time = 2000; private final handler mhandler = new handler() { public void handlemessage(android.os.message msg) { switch (msg.what) { case timeranimation: int position = getselecteditemposition(); log.i("msg", "position:"+position); if (position >= (getcount() - 1)) { onkeydown(keyevent.keycode_dpad_left, null); } else { onkeydown(keyevent.keycode_dpad_right, null); } break; default: break; } }; }; private final timer timer = new timer(); private final timertask task = new timertask() { public void run() { mhandler.sendemptymessage(timeranimation); } }; public homegallery(context paramcontext) { super(paramcontext); timer.schedule(task, time, time); } public homegallery(context paramcontext, attributeset paramattributeset) { super(paramcontext, paramattributeset); timer.schedule(task, time, time); } public homegallery(context paramcontext, attributeset paramattributeset, int paramint) { super(paramcontext, paramattributeset, paramint); timer.schedule(task, time, time); } private boolean isscrollingleft(motionevent parammotionevent1, motionevent parammotionevent2) { float f2 = parammotionevent2.getx(); float f1 = parammotionevent1.getx(); if (f2 > f1) return true; return false; } public boolean onfling(motionevent parammotionevent1, motionevent parammotionevent2, float paramfloat1, float paramfloat2) { int keycode; if (isscrollingleft(parammotionevent1, parammotionevent2)) { keycode = keyevent.keycode_dpad_left; } else { keycode = keyevent.keycode_dpad_right; } onkeydown(keycode, null); return true; } public void destroy() { timer.cancel(); } }
希望本文所述对大家的android程序设计有所帮助。
上一篇: HTML5声音录制/播放功能的实现代码
下一篇: APP推广一定要避开这三个套路!