Авторизация
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
После регистрации вы можете задавать вопросы и отвечать на них, зарабатывая деньги. Ознакомьтесь с правилами, будем рады видеть вас в числе наших авторов!
Вы должны войти или зарегистрироваться, чтобы добавить ответ.
Для создания жестов на Android можно использовать класс GestureDetector. Вот пример кода, который позволяет определить жесты свайпа влево и вправо:
1. Создайте новый класс, который реализует интерфейс GestureDetector.OnGestureListener:
«`java
import android.view.GestureDetector;
import android.view.MotionEvent;
public class MyGestureListener implements GestureDetector.OnGestureListener {
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return true;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
boolean result = false;
try {
float diffX = e2.getX() — e1.getX();
float diffY = e2.getY() — e1.getY();
if (Math.abs(diffX) > Math.abs(diffY)) {
if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
if (diffX > 0) {
onSwipeRight();
} else {
onSwipeLeft();
}
result = true;
}
}
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}
public void onSwipeRight() {
// Действия при свайпе вправо
}
public void onSwipeLeft() {
// Действия при свайпе влево
}
}
«`
2. В вашей активности или фрагменте создайте экземпляр GestureDetector и добавьте обработку событий к вашему View:
«`java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
public class MainActivity extends AppCompatActivity {
private GestureDetector gestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureDetector = new GestureDetector(this, new MyGestureListener());
View view = findViewById(R.id.your_view_id);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
});
}
}
«`
Замените «your_view_id» на идентификатор вашего View, на котором вы хотите обрабатывать жесты.
Теперь вы можете добавить свои действия в методы onSwipeRight() и onSwipeLeft() в классе MyGestureListener, чтобы выполнить определенные действия при свайпе вправо или влево.