Итак в чем заключается вопрос: мне нужно сделать, что когда пользователь делает свайп пальцем, выполняется какое-то действие, например всплывает сообщение или открывается новое activity. P.s Не кидайте ссылки на иностранные сайты Объясните как это сделать или Киньте простой исходник
Ответ
Вот такой пример для вас:
MainActivity.class:
public class MainActivity extends AppCompatActivity {
private GestureDetectorCompat lSwipeDetector;
RelativeLayout main_layout;
TextView tvTxt;
int i;
private static final int SWIPE_MIN_DISTANCE = 130;
private static final int SWIPE_MAX_DISTANCE = 300;
private static final int SWIPE_MIN_VELOCITY = 200;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
i = 1;
lSwipeDetector = new GestureDetectorCompat(this, new MyGestureListener());
main_layout = (RelativeLayout) findViewById(R.id.main_layout);
tvTxt = (TextView) findViewById(R.id.tvTxt);
tvTxt.setText("" + i);
main_layout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return lSwipeDetector.onTouchEvent(event);
}
});
}
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener{
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_DISTANCE)
return false;
if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_MIN_VELOCITY) {
i++;
tvTxt.setText("" + i);
}
return false;
}
}
}
activity_main.xml
leftSwipe (слева - направо) будет увеличивать значение TextView на 1 и сразу показывать.
Комментариев нет:
Отправить комментарий