android實現(xiàn)自動滾動的Gallary控件效果
更新時間:2015年10月12日 12:03:42 作者:thearyong
這篇文章主要介紹了android實現(xiàn)自動滾動的Gallary控件效果,涉及Android中Gallary控件的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了android實現(xiàn)自動滾動的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 { /** * 這里的數(shù)值,限制了每次滾動的最大長度,圖片寬度為480PX。這里設(shè)置600效果好一些。 這個值越大,滾動的長度就越大。 * 也就是會出現(xiàn)一次滾動跨多個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程序設(shè)計有所幫助。
您可能感興趣的文章:
- Android編程獲取屏幕寬高與獲取控件寬高的方法
- Android在OnCreate中獲取控件的寬度和高度的實現(xiàn)代碼
- Android中shape定義控件的使用
- Android編程開發(fā)之TextView控件用法(2種方法)
- Android開發(fā)之多線程中實現(xiàn)利用自定義控件繪制小球并完成小球自動下落功能實例
- Android編程布局控件之AbsoluteLayout用法實例分析
- Android編程之Button控件用法實例分析
- 使用Android自定義控件實現(xiàn)滑動解鎖九宮格
- Android控件動態(tài)用法實例分析
- Android中Spinner控件之鍵值對用法實例分析
- Android編程獲取控件寬和高的方法總結(jié)分析
相關(guān)文章
詳解Android開發(fā)數(shù)據(jù)持久化之文件存儲(附源碼)
本篇文章主要介紹了詳解Android開發(fā)數(shù)據(jù)持久化之文件存儲(附源碼),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03Android開發(fā)之TextView控件用法實例總結(jié)
這篇文章主要介紹了Android開發(fā)之TextView控件用法,結(jié)合實例形式總結(jié)分析了TextView控件常用的屬性設(shè)置及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-02-02Android NDK開發(fā)(C語言基本數(shù)據(jù)類型)
這篇文章主要介紹了Android NDK開發(fā)中,C語言基本數(shù)據(jù)類型,主要以C語言包含的數(shù)據(jù)類型及基本類型展開相關(guān)資料,需要的朋友可以參考一下2021-12-12