用三个手指触摸后关闭Android应用程序
当有三个手指像mac os一样触摸屏幕时,我想关闭我的应用程序。在我的应用程序中,我同时使用了碎片和视图寻呼机,但我不知道如何使用event.getAction和Action Mask 我两者都用用三个手指触摸后关闭Android应用程序,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,当有三个手指像mac os一样触摸屏幕时,我想关闭我的应用程序。在我的应用程序中,我同时使用了碎片和视图寻呼机,但我不知道如何使用event.getAction和Action Mask 我两者都用 MotionEvent.ACTION_UP MotionEvent.ACTION_POINTER_DOWN: 但它们不起作用 使用时,会多次调用另一个动作屏蔽应用程序 int maxPointercount=0; int previousPointercount=0; public boolea
MotionEvent.ACTION_UP
MotionEvent.ACTION_POINTER_DOWN:
但它们不起作用
使用时,会多次调用另一个动作屏蔽应用程序
int maxPointercount=0;
int previousPointercount=0;
public boolean onTouch(View v, MotionEvent event) {
int currentpointerCount = event.getPointerCount();
System.out.println("My pointer....." + currentpointerCount);
int action = event.getAction() & MotionEvent.ACTION_MASK;
System.out.println("pre......."+previousPointercount);
System.out.println("max......."+maxPointercount);
if(maxPointercount < previousPointercount){
maxPointercount = currentpointerCount;
}
previousPointercount = currentpointerCount;
if(action==MotionEvent.ACTION_) {
if(maxPointercount>=3){
maxPointercount = 0;
Toast.makeText(MyclassActivity.this,"FingerToched!!"Toast.LENGTH_SHORT).show();
Intent intent = newIntent(MyclassActivity.this,DashboardActivity.class);
startActivity(intent);
finish();
//your code that will run 1 time
}
maxPointercount = 0;
previousPointercount = 0;
}
return super.onTouchEvent(event);
}
这应该行得通
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
int currentpointerCount = event.getPointerCount();
Log.d("hi", "My pointer....." + currentpointerCount);
int action = event.getAction() & MotionEvent.ACTION_MASK;
System.out.println("pre......."+previousPointercount);
System.out.println("max......."+maxPointercount);
if(maxPointercount < previousPointercount){
maxPointercount = currentpointerCount;
}
previousPointercount = currentpointerCount;
if(action==MotionEvent.ACTION_UP) {
if(maxPointercount==3){
finish();
//your code that will run 1 time
}
maxPointercount = 0;
previousPointercount = 0;
}
return true;
/** This worked for OP's specific case
return super.dispatchTouchEvent(event);
**/
}
这应该行得通
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
int currentpointerCount = event.getPointerCount();
Log.d("hi", "My pointer....." + currentpointerCount);
int action = event.getAction() & MotionEvent.ACTION_MASK;
System.out.println("pre......."+previousPointercount);
System.out.println("max......."+maxPointercount);
if(maxPointercount < previousPointercount){
maxPointercount = currentpointerCount;
}
previousPointercount = currentpointerCount;
if(action==MotionEvent.ACTION_UP) {
if(maxPointercount==3){
finish();
//your code that will run 1 time
}
maxPointercount = 0;
previousPointercount = 0;
}
return true;
/** This worked for OP's specific case
return super.dispatchTouchEvent(event);
**/
}
我会问为什么。如果你想要OSX,那就使用Mac。我会对关闭的am应用程序感到恼火,我认为你正在做一些可怕的事情,比如system.exit,因为它检测到了3个手指。我不明白你想说什么。兄弟,请用适当的语言解释。@Lars Jensen。。谢谢兄弟@gaurav kumawat bhai mene ek问题上传kiya h uska立即回复dhoond问题hai kya我会问为什么。如果你想要OSX,那就使用Mac。我会对关闭的am应用程序感到恼火,我认为你正在做一些可怕的事情,比如system.exit,因为它检测到了3个手指。我不明白你想说什么。兄弟,请用适当的语言解释。@Lars Jensen。。谢谢兄弟@gaurav kumawat bhai mene ek问题上传kiya h uska立即回复dhoond问题hai kya…它正在工作,但当我使用此代码时,我的内部活动已停止。就像在我的仪表板后使用的视图寻呼机,但当我应用此代码时,它无法工作…内部布局不起作用您的内部活动是什么意思?使用getActivity.finish;如果你在处理碎片。嘿,伙计,我在活动中使用了ondispatched事件。该活动包含视图寻呼机和tabpageindicator。因此,我将used finish放在了活动中,但当我在活动中实现ondispatchevent时。当前活动中包含的寻呼机和选项卡页面指示器刚刚停止工作。是否已停止工作,因为它们给出了异常错误?或者你什么意思?嘿,兄弟,干了!!谢谢。我已跳过super.dispatchtoucheventevent并解决了我的问题,而不是返回true。它正在工作,但当我使用此代码时,我的内部活动已停止。就像在我的仪表板后使用的视图寻呼机,但当我应用此代码时,它无法工作…内部布局不起作用您的内部活动是什么意思?使用getActivity.finish;如果你在处理碎片。嘿,伙计,我在活动中使用了ondispatched事件。该活动包含视图寻呼机和tabpageindicator。因此,我将used finish放在了活动中,但当我在活动中实现ondispatchevent时。当前活动中包含的寻呼机和选项卡页面指示器刚刚停止工作。是否已停止工作,因为它们给出了异常错误?或者你什么意思?嘿,兄弟,干了!!谢谢。我已跳过super.dispatchtoucheventevent并解决了我的问题,而不是返回true