編輯:初級開發
很多網友發現Android中手勢識別提供了兩個類,由於Android 1.6以下的版本比如cupcake中無法使用android.view.GestureDetector,而android.gesture.Gesture是Android 1.6才開始支持的,我們考慮到仍然有很多Android 1.5固件的網友,就來看下兼容性更強的android.vIEw.GestureDetector。在android.view.GestureDetector類中有很多種重載版本,下面我們僅提到能夠自定義在View中的兩種方法,分別為GestureDetector(Context context, GestureDetector.OnGestureListener listener) 和 GestureDetector(Context context, GestureDetector.OnGestureListener listener, Handler handler) 和。我們可以看到第一個參數為Context,所以我們想附著到某VIEw時,最簡單的方法就是直接從超類派生傳遞Context,實現GestureDetector裡中提供一些接口。
下面我們就以實現手勢識別的onFling動作,在CwjView中我們從View類繼承,當然大家可以從TextVIEw等更高層的界面中實現觸控。
class CwjView extends VIEw {
private GestureDetector mGD;
public CwjVIEw(Context context, AttributeSet attrs) {
super(context, attrs);
mGD = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX()); //計算滑動的距離
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) { //降噪處理,必須有較大的動作才識別
if (velocityX > 0) {
//向右邊
} else {
//向左邊
}
return true;
} else {
return false; //當然可以處理velocityY處理向上和向下的動作
}
}
});
}
在上面android123提示大家僅僅探測了Fling動作僅僅實現了onFling方法,這裡相關的還有以下幾種方法來實現具體的可以參考我們以前的文章有詳細的解釋:
boolean onDoubleTap(MotionEvent e)
boolean onDoubleTapEvent(MotionEvent e)
boolean onDown(MotionEvent e)
void onLongPress(MotionEvent e)
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
void onShowPress(MotionEvent e)
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
接下來是重點,讓我們的VIEw接受觸控,需要使用下面兩個方法讓GestureDetector類去處理onTouchEvent和onInterceptTouchEvent方法。
@Override
public boolean onTouchEvent(MotionEvent event) {
mGD.onTouchEvent(event);
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return mGD.onTouchEvent(event);
}
}
有關重力感應的方向識別, 我們將告訴大家如何通過重力感應來控制我們的Android游戲,目前對於大多數Android設備來說僅提供了重力感應器和加速感應器,只有較新或高端的Android設備還提供了陀螺儀,可以幫助我們測試角速度,來處理一些復雜的應用。詳細的可以參考我們的 android游戲開發之旅12 重力感應篇
1.android模擬器采用的是開源工程Qemu,Qemu是Linux 下的著名模擬器2. kernel-qemu是內核鏡像3. ramdisk.img是文件系統,如果
本文節選於機械工業出版社推出的《android應用開發揭秘》一書,作者為楊豐盛。本書內容全面,詳細講解了Android框架、android組件、用戶界面開發、游戲開發、
android Gallery控件的主要功能就是實現圖片的浏覽,下面通過代碼來解釋:android Gallery控件:即圖片浏覽控件< Gallery andr
本文收集10款對開發者有用的Android應用,希望能對你的開發有所幫助。如果你還知道有其他對開發者很有用的android應用?也分享出來吧。列表如下:1.Remote