android实现自动滚动的Gallary控件效果
程序员文章站
2023-12-03 13:18:34
本文实例讲述了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程序设计有所帮助。
推荐阅读
-
android开发实现列表控件滚动位置精确保存和恢复的方法(推荐)
-
android实现自动滚动的Gallary控件效果
-
Android编程实现类似天气预报图文字幕垂直滚动效果的方法
-
Android编程实现图片的浏览、缩放、拖动和自动居中效果
-
Android使用Recyclerview实现图片水平自动循环滚动效果
-
Android编程实现GridView控件点击图片变暗效果的方法
-
学习使用Material Design控件(四)Android实现标题栏自动缩放、放大效果
-
Android 使用CoordinatorLayout实现滚动标题栏效果的实例
-
Android实现两个ScrollView互相联动的同步滚动效果代码
-
android 实现ScrollView自动滚动的实例代码