編輯:關於Android編程
本文實例講述了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程序設計有所幫助。
AndroidStudio 如何使用JNI
一這是本人第一次寫博客 請多多關照第一次接觸到Android NDK 真是蒙圈 因為需要和Bluetooth下位機接觸 所以要在項目中鑲嵌Cpp 算法 然後總結了andr
小米edge什麼時候上市 小米edge發布時間
小米edge什麼時候上市?相信很多米粉對於小米edge手機很是期待和關注,紛紛上網咨詢,下文介紹小米edge上市時間,一起和小編來了解下吧! 小米edge
android Handler詳細使用方法實例
開發環境為android4.1.Handler使用例1這個例子是最簡單的介紹handler使用的,是將handler綁定到它所建立的線程中.本次實驗完成的功能是:單擊St
Android聯系人中添加歸屬地分組
之前重要負責收集聯系人添加歸屬地,公司這兩個智能分組;網上的實現方法很多,有說通過webserver來查詢,但是網絡這種形式不是長遠之道;畢竟服務器不是你自己的,還有