3
A
回答
1
你可以嘗試用MotionEvent.ACTION_POINTER_DOWN使用OnTouchListener這樣的:
button.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent motionEvent) {
int action = motionEvent.getAction();
switch(action & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_POINTER_DOWN:
Toast.makeText(MyActivity.this, " Two Fingers Tapped Once. Yeeeyy :)", 0).show();
// set the mTwoFingersTapped flag to TRUE when we tap with 2 fingers at once
mTwoFingersTapped = true;
break;
}
return false;
}
});
Here是一個教程,說明如何,如果你需要更多的細節做到這一點。我希望這會有所幫助。
+0
嘿,謝謝。你能告訴我如何使用這個實現刷卡! – gauravsapiens
+0
不幸的是我對滑動並不太瞭解。也許有人可以幫忙。對不起:( – Laura
1
我的解決方案的工作原理,但它使用公共靜態int來計算有多少手指相當醜陋。我不得不將手指數設置回一個,因爲我不能再爲一個手指獲得action_pointer_down ......我不知道爲什麼......但是這個解決方案也適用於更多的手指......希望有人可以使用它在功能
public class RemoteFragment extends Fragment{
public static int fingercount = 1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final GestureDetector gdt = new GestureDetector(getActivity(),
new RemoteGestureListener());
View view = inflater.inflate(R.layout.gestures, container, false);
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(final View view, final MotionEvent event) {
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
Log.d(TAG,
"Pointer-Count ="
+ String.valueOf(fingerCount = event
.getPointerCount()));
break;
}
gdt.onTouchEvent(event);
return true;
}
});
return view;
}
}
public class RemoteGestureListener implements OnGestureListenerr {
private final static String TAG = "RemoteGestureListener";
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
public RemoteGestureListener() {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Log.d(TAG, "onFling");
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if (RemoteFragment.fingerCount == 1) {
Log.d(TAG, "Left Swipe");
} else {
Log.d(TAG, "Left xFinger Swipe");
RemoteFragment.fingerCount = 1;
}
return true; // Right to left
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if (RemoteFragment.fingerCount == 1) {
Log.d(TAG, "Right Swipe");
} else {
Log.d(TAG, "Right xFinger Swipe");
RemoteFragment.fingerCount = 1;
}
return true; // Left to right
}
if (e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
if (RemoteFragment.fingerCount == 1) {
Log.d(TAG, "Top Swipe");
} else {
Log.d(TAG, "Top xFinger Swipe");
RemoteFragment.fingerCount = 1;
}
return true; // Bottom to top
} else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
if (RemoteFragment.fingerCount == 1) {
Log.d(TAG, "Bottom Swipe");
} else {
Log.d(TAG, "Bottom xFinger Swipe");
RemoteFragment.fingerCount = 1;
}
return true;
}
return true;
}
0
我做了a library前一段時間,使得實現1 /多指刷卡很方便。
想要看就是
ImageView mv = (ImageView) findViewById(R.id.myview);
final TextView grtv = (TextView) findViewById(R.id.gestureResultTextView);
SimpleFingerGestures.DEBUG = true;
SimpleFingerGestures.CONSUME_TOUCH_EVENTS = true;
SimpleFingerGestures sfg = new SimpleFingerGestures();
sfg.setOnFingerGestureListener(new SimpleFingerGestures.OnFingerGestureListener() {
@Override
public boolean onSwipeUp(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " up");
return false;
}
@Override
public boolean onSwipeDown(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " down");
return false;
}
@Override
public boolean onSwipeLeft(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " left");
return false;
}
@Override
public boolean onSwipeRight(int fingers, long gestureDuration) {
grtv.setText("swiped " + fingers + " right");
return false;
}
@Override
public boolean onPinch(int fingers, long gestureDuration) {
grtv.setText("pinch");
return false;
}
@Override
public boolean onUnpinch(int fingers, long gestureDuration) {
grtv.setText("unpinch");
return false;
}
});
mv.setOnTouchListener(sfg);
相關問題
- 1. 刷卡圖像的按鈕和手指
- 2. Android手勢刷卡「意外停止」
- 3. 雙擊在Android中刷卡?
- 4. 在Android中刷卡聽衆
- 5. 在Tabhost中的Android刷卡
- 6. Android 2手指觸摸觸發1個手指觸摸以及2個手指觸摸
- 7. 在ListView中的2個手指滑動
- 8. ANDROID刷卡UI
- 9. 離子含量離子2自定義指令(刷卡)2
- 10. TouchesMoved與2個手指
- 11. 刷卡用手機刪除
- 12. iOS:UIScrollView檢測刷卡手勢
- 13. Tablayout刷卡不刷新android
- 14. Android ListView和刷卡刷新
- 15. Android刷卡刷新錯誤
- 16. 手指在Android中繪製
- 17. GestureDetecter刷卡之間的2個屏幕
- 18. 捏縮放和2個手指旋轉Android中的ImageView
- 19. 2在Android手指旋轉手勢監聽器
- 20. 禁用bxslider只在手機上刷卡
- 21. 滑動佈局之間沒有刷卡或手勢在Android
- 22. 刷卡android系統
- 23. 的Android viewpager - 刷卡
- 24. Android刷卡速度
- 25. ios刷卡後longpress結束,沒有擡起手指
- 26. 2手指觸摸
- 27. 的UIButton接受1個手指2的手指敲擊事件
- 28. 在android中的MapActivity中的多個地圖(與刷卡)
- 29. ScrollView中的2個手指盤w /其他手勢 - iOS SDK
- 30. Android:如何結合使用Longpress在listView上的項目中刷卡手勢
已經獲得國家的解決方案,如果是該部分的更詳細的文檔你可以在這裏提供代碼嗎? –