Java 如何检测是否在屏幕的左侧或右侧执行运动事件手势?
与MX播放器一样,左手垂直滑动手势控制亮度,右手垂直手势控制音量,我需要在我的应用程序中应用这一概念。那我该怎么做呢?你可以像这样听触摸事件:Java 如何检测是否在屏幕的左侧或右侧执行运动事件手势?,java,android,Java,Android,与MX播放器一样,左手垂直滑动手势控制亮度,右手垂直手势控制音量,我需要在我的应用程序中应用这一概念。那我该怎么做呢?你可以像这样听触摸事件: public class MainActivity extends Activity { float x1 = 0; float y1 = 0; float x2 ; float y2 ; ... @Override public boolean onTouchEvent(
public class MainActivity extends Activity {
float x1 = 0;
float y1 = 0;
float x2 ;
float y2 ;
...
@Override
public boolean onTouchEvent(MotionEvent event){
int action = MotionEventCompat.getActionMasked(event);
switch(action) {
case (MotionEvent.ACTION_DOWN) :
x1 = event.getX();
y1 = event.getY();
return true;
case (MotionEvent.ACTION_UP) :
x2 = event.getX();
y2 = event.getY();
//if left to right sweep event on screen
if (x1 < x2)
{
Toast.makeText(this, "Left to Right Swap Performed", Toast.LENGTH_LONG).show();
}
// if right to left sweep event on screen
if (x1 > x2)
{
Toast.makeText(this, "Right to Left Swap Performed", Toast.LENGTH_LONG).show();
}
// if UP to Down sweep event on screen
if (y1 < y2)
{
Toast.makeText(this, "UP to Down Swap Performed", Toast.LENGTH_LONG).show();
}
//if Down to UP sweep event on screen
if (y1 > y2)
{
Toast.makeText(this, "Down to UP Swap Performed", Toast.LENGTH_LONG).show();
}
return true;
公共类MainActivity扩展活动{
浮点x1=0;
浮动y1=0;
浮动x2;
浮动y2;
...
@凌驾
公共布尔onTouchEvent(运动事件){
int action=MotionEventCompat.getActionMasked(事件);
开关(动作){
案例(MotionEvent.ACTION\u DOWN):
x1=event.getX();
y1=event.getY();
返回true;
案例(MotionEvent.ACTION\u UP):
x2=event.getX();
y2=event.getY();
//如果屏幕上出现从左向右扫描事件
if(x1x2)
{
Toast.makeText(这是“执行了从右到左的交换”,Toast.LENGTH_LONG.show();
}
//如果屏幕上出现向上向下扫描事件
if(y1y2)
{
Toast.makeText(这是“执行了从下到上的交换”,Toast.LENGTH_LONG.show();
}
返回true;
MotionEvents具有x坐标和y坐标。使用简单的数学方法来检测MotionEvent的触发位置。