本文实例讲述了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程序设计有所帮助。
如对本文有疑问, 点击进行留言回复!!
Android SDK Manager 不知为什么突然打不开了?看这里
监听Android系统发出的插入SD卡并且已正确安装(识别)时发出的广播
RecyclerView三种常用效果的实现方法-android-kotlin
Android Studio app启动错误 Error running :Default Activity not found
网友评论