Android 在网格视图上实现滑动手势
我想在GridView上执行滑动手势。 例如:当我用手指滑动要删除的图像时,我有3*3GridView和9个图像 如果你有什么想法,有人能帮我吗Android 在网格视图上实现滑动手势,android,gridview,swipe-gesture,Android,Gridview,Swipe Gesture,我想在GridView上执行滑动手势。 例如:当我用手指滑动要删除的图像时,我有3*3GridView和9个图像 如果你有什么想法,有人能帮我吗 谢谢这是一个对我有用的例子 public class GameActivity extends AppCompatActivity { private GestureDetectorCompat detector; @Override protected void onCreate(Bundle savedInstanceS
谢谢这是一个对我有用的例子
public class GameActivity extends AppCompatActivity {
private GestureDetectorCompat detector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
detector = new GestureDetectorCompat(this, new MyGestureListener());
GridView board = (GridView) findViewById(R.id.board);
board.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
return false;
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
detector.onTouchEvent(event);
return super.onTouchEvent(event);
}
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent event) {
return true;
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
float diffY = event2.getY() - event1.getY();
float diffX = event2.getX() - event1.getX();
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();
}
}
} else {
if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
if (diffY > 0) {
onSwipeBottom();
} else {
onSwipeTop();
}
}
}
return true;
}
}
private void onSwipeLeft() {
}
private void onSwipeRight() {
}
private void onSwipeTop() {
}
private void onSwipeBottom() {
}
}
尝试使用
手势检测器来查看网格视图的onTouch()
你能给我举个例子吗。。。。谢谢你应该得到更多的选票。谢谢你举个很好的例子你能解释一下你在这里做了什么吗?它今天仍然有效吗?