Android 如何检测屏幕上的点击?
更具体地说,我应该将Android 如何检测屏幕上的点击?,android,gesturedetector,Android,Gesturedetector,更具体地说,我应该将OnTestureListener附加到哪里,以便 我可以在屏幕上的任何地方检测到onSingleTapUp, 即使ImageView占据了屏幕的一半 现在我有了活动的侦听器,该活动具有ImageView。 但是侦听器只有在我在ImageView外部单击时才会启动 我阅读并试图理解这一点,但无法正确理解 此代码位于活动中 public boolean onSingleTapUp(MotionEvent e) { //addtext.setText("-" + "SI
OnTestureListener附加到哪里
,以便我可以在屏幕上的任何地方检测到
onSingleTapUp
,即使
ImageView
占据了屏幕的一半
现在我有了活动的侦听器,该活动具有ImageView。但是侦听器只有在我在ImageView外部单击时才会启动 我阅读并试图理解这一点,但无法正确理解 此代码位于活动中
public boolean onSingleTapUp(MotionEvent e) {
//addtext.setText("-" + "SINGLE TAP UP" + "-");
//Log.d(TAG, "- + SINGLE TAP UP + - ***********************************************************************");
int btnsize = buttonSave.getHeight();
int viewWidth = display.getWidth();
int viewHeight = display.getHeight();
// RIGHT SIDE SCREEN
if(e.getX()> (viewWidth*0.7)){
Log.d(TAG, "RIGHT SIDE");
if(e.getY()> viewHeight*0.7){
Log.d(TAG, "right down on screen");
}else if(e.getY()> (viewHeight*0.45)){
Log.d(TAG, "right middle on screen ");
}
}
// LEFT SIDE SCREEN
if(e.getX()< (viewWidth*0.3)){
Log.d(TAG, "LEFT SIDE");
if(e.getY()> viewHeight*0.7){
Log.d(TAG, "Left middle on screen ");
}else if(e.getY()> (viewHeight*0.45)){
Log.d(TAG, "Left down on screen ");
}
}
return true;
}
public boolean onsingletapp(运动事件e){
//addtext.setText(“-”+“单点击”+“-”);
//Log.d(标记为“-+单点启动+-**********************************************************************************************************”;
int btnsize=buttonSave.getHeight();
int viewWidth=display.getWidth();
int viewHeight=display.getHeight();
//右侧屏幕
如果(例如getX()>(viewWidth*0.7)){
日志d(标签“右侧”);
如果(e.getY()>viewHeight*0.7){
Log.d(标签“屏幕右下”);
}如果(e.getY()>(viewHeight*0.45)){
Log.d(标签,“屏幕右中”);
}
}
//左侧屏幕
如果(例如getX()<(viewWidth*0.3)){
日志d(标签“左侧”);
如果(e.getY()>viewHeight*0.7){
Log.d(标签,“屏幕左中”);
}否则如果(例如getY()>(视图高度*0.45)){
Log.d(标签“屏幕左下”);
}
}
返回true;
}
我在回答我自己的问题。感谢上面的@Jason。我已向所有视图注册了onTouchEvent。它工作得很好。检测屏幕点击 我回答这个问题是为了那些只需要一个简单的方法来检测屏幕上的点击的人:
android:onClick
值添加到基本/根布局(LinearLayout、RelativeLayout等)。你可以随意称呼它,我将它命名为screenstapped
,作为一个例子:
onClick
指定的相同名称将此方法添加到您的活动中:
public void屏幕点击(视图){
//你的代码在这里
}
现在,点击屏幕将调用上述方法。不确定是否有更好的方法,但您可以将onTouchEvent注册到所有视图中