android如何设置屏幕的某块区域有触摸事件
我用androidopengl做了个立方体。通过屏幕触摸事件来控制它旋转。一开始用了onTouchEvent方法,但这样子触摸整个屏幕任何地方都能控制旋转。我只想要触摸屏...
我用android opengl做了个立方体。通过屏幕触摸事件来控制它旋转。一开始用了onTouchEvent方法,但这样子触摸整个屏幕任何地方都能控制旋转。我只想要触摸屏幕的下半部才能控制旋转。
希望有大侠请教!谢谢 展开
希望有大侠请教!谢谢 展开
2个回答
展开全部
方法如下:
public boolean onTouchEvent(MotionEvent event) {
//获得触摸的坐标
float x = event.getX();
float y = event.getY(); switch (event.getAction())
{
//触摸屏幕时刻
case MotionEvent.ACTION_DOWN:
break;
//触摸并移动时刻
case MotionEvent.ACTION_MOVE:
break;
//终止触摸时刻
case MotionEvent.ACTION_UP:
break;
}
return true;
}
关于public boolean onTouchEvent (MotionEvent event)方法:
参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。
返回值:该方法的返回值机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理时返回true,否则返回false。
该方法并不像之前介绍过的方法只处理一种事件,一般情况下以下三种情况的事件全部由onTouchEvent方法处理,只是三种情况中的动作值不同。
屏幕被按下:当屏幕被按下时,会自动调用该方法来处理事件,此时MotionEvent.getAction()的值为MotionEvent.ACTION_DOWN,如果在应用程序中需要处理屏幕被按下的事件,只需重新该回调方法,然后在方法中进行动作的判断即可。
屏幕被抬起:当触控笔离开屏幕时触发的事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行动作判断。当MotionEvent.getAction()的值为MotionEvent.ACTION_UP时,表示是屏幕被抬起的事件。
在屏幕中拖动:该方法还负责处理触控笔在屏幕上滑动的事件,同样是调用MotionEvent.getAction()方法来判断动作值是否为MotionEvent.ACTION_MOVE再进行处理。
public boolean onTouchEvent(MotionEvent event) {
//获得触摸的坐标
float x = event.getX();
float y = event.getY(); switch (event.getAction())
{
//触摸屏幕时刻
case MotionEvent.ACTION_DOWN:
break;
//触摸并移动时刻
case MotionEvent.ACTION_MOVE:
break;
//终止触摸时刻
case MotionEvent.ACTION_UP:
break;
}
return true;
}
关于public boolean onTouchEvent (MotionEvent event)方法:
参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。
返回值:该方法的返回值机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理时返回true,否则返回false。
该方法并不像之前介绍过的方法只处理一种事件,一般情况下以下三种情况的事件全部由onTouchEvent方法处理,只是三种情况中的动作值不同。
屏幕被按下:当屏幕被按下时,会自动调用该方法来处理事件,此时MotionEvent.getAction()的值为MotionEvent.ACTION_DOWN,如果在应用程序中需要处理屏幕被按下的事件,只需重新该回调方法,然后在方法中进行动作的判断即可。
屏幕被抬起:当触控笔离开屏幕时触发的事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行动作判断。当MotionEvent.getAction()的值为MotionEvent.ACTION_UP时,表示是屏幕被抬起的事件。
在屏幕中拖动:该方法还负责处理触控笔在屏幕上滑动的事件,同样是调用MotionEvent.getAction()方法来判断动作值是否为MotionEvent.ACTION_MOVE再进行处理。
展开全部
MotionEvent getY() 不久可以判断位置了吗?
可以 和 屏幕尺寸 DisplayMetrics 比较 ,判断是否是屏幕的下半部
可以 和 屏幕尺寸 DisplayMetrics 比较 ,判断是否是屏幕的下半部
追问
有具体的代码可以看下吗?谢谢
追答
DisplayMetrics displayMetrics = new DisplayMetrics();
baseActivity.getWindowManager().getDefaultDisplay().getMetrics(
displayMetrics);
int heightPixels = displayMetrics.heightPixels;
if (motionEvent.getY() > heightPixels /2){
// 下半部 ,可以旋转
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询