android實現(xiàn)自動滾動的Gallary控件效果
更新時間:2015年10月12日 12:03:42 作者:thearyong
這篇文章主要介紹了android實現(xiàn)自動滾動的Gallary控件效果,涉及Android中Gallary控件的相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了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
{
/**
* 這里的數值,限制了每次滾動的最大長度,圖片寬度為480PX。這里設置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程序設計有所幫助。
您可能感興趣的文章:
- 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編程獲取控件寬和高的方法總結分析
相關文章
詳解Android開發(fā)數據持久化之文件存儲(附源碼)
本篇文章主要介紹了詳解Android開發(fā)數據持久化之文件存儲(附源碼),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Android開發(fā)之TextView控件用法實例總結
這篇文章主要介紹了Android開發(fā)之TextView控件用法,結合實例形式總結分析了TextView控件常用的屬性設置及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-02-02

