项目中需要做滑动监听事件,具体如下:
做的过程中遇到点小麻烦,写了监听后无效,具体原因及解决方法请看后面
final int RIGHT = 0;
final int LEFT = 1;
private GestureDetector gestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_news_img);
gestureDetector = new GestureDetector(NewsDetailImgActivity.this,onGestureListener);
private GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Log.v(TAG, "onFling...");
float x = e2.getX() - e1.getX();
float y = e2.getY() - e1.getY();
if (x > 300) {
doResult(RIGHT);
} else if (x < -300) {
doResult(LEFT);
}
return true;
}
};
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
public void doResult(int action) {
switch (action) {
case RIGHT:
Log.v(TAG, "go right");
System.out.println("go right");
break;
case LEFT:
Log.v(TAG, "go LEFT");
System.out.println("go LEFT");
break;
}
}
}
今天做的时候很莫名其妙的监听滑动事件不管用了,后来找到原因是因为布局文件中用了ScrollView,与GestureDetector冲突,解决方法是重写dispatchTouchEvent方法即可:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODOAuto-generatedmethodstub
gestureDetector.onTouchEvent(ev); // 让GestureDetector响应触碰事件
super.dispatchTouchEvent(ev); // 让Activity响应触碰事件
return false;
}
在找原因的时候发现布局文件中添加android:longClickable="true"对监听滑动事件也有影响,具体没仔细研究
分享到:
相关推荐
本篇将详细讲解如何在Android Webview中实现滑动监听以及图片的放大缩小功能。 首先,我们要了解`WebView`的基本用法。在Android Studio中,创建一个新的布局XML文件,添加`WebView`组件: ```xml android:id="@...
总结来说,“屏幕的上下左右滑动监听事件详解demo(AS)”是一个实用的教程,它演示了如何在Android应用中利用GestureDetector监听和处理屏幕滑动事件。通过这个示例,开发者可以学习到手势识别的基本原理和实践技巧...
标题中的“android GestureDetector依赖onTouchEvent判断左右滑动”指的是通过`GestureDetector`监听`MotionEvent`的`ACTION_DOWN`, `ACTION_MOVE`和`ACTION_UP`事件,来实现手指在屏幕上左右滑动的识别。...
这篇2011年的博客文章“2011.10.11——— android GestureDetector 测试OnGestureListener”很可能详细探讨了如何使用`GestureDetector`来监听和处理用户的手势。 `GestureDetector`的核心在于它的监听器`...
在Fragment中实现监听触摸事件的好处是可以使得Fragment具有更多的交互性,例如,我们可以在Fragment中监听触摸事件来实现滑动、点击、长按等操作。同时,使用接口来实现触摸事件的分发也可以将代码变得更加简洁和...
Android系统提供了GestureDetector类,让开发者可以通过简单的接口实现复杂的手势监听功能,减少直接在OnTouchEvent方法中编写大量触摸事件处理代码的复杂性。 ### Android自定义ViewGroup可滚动布局知识点 #### 1...
在Android中,我们可以使用`GestureDetector`类来处理用户的触摸事件,通过重写其回调方法,如`onDown()`, `onFling()`, `onScroll()`等,来检测和响应用户的滑动手势。为了实现滑动退出功能,我们通常关注`onFling...
`GestureDetector`是Android SDK提供的一种工具类,用于检测和处理基本的手势,如轻触、双击、滑动等。本文将深入探讨如何使用`GestureDetector`来实现屏幕上的滑动手势。 首先,我们需要在布局文件中添加一个视图...
在Android中,滑动监听通常涉及到`GestureDetector`类,它是Android提供的一个手势检测工具,能够识别出用户的滑动、点击、长按等基本手势。下面将详细讲解如何使用`GestureDetector`来监听屏幕滑动。 1. **初始化...
这个"Android 滑动手势监听例子源码.zip"文件提供了一个简单的实例,帮助开发者理解和实现滑动手势监听功能。下面我们将深入探讨Android中滑动手势的原理、实现方式以及如何在实际应用中运用这些知识。 首先,...
`GestureDetector`是Android SDK提供的一种用于处理基本手势的工具类,它可以帮助开发者轻松地识别和处理用户的触摸事件,如单击、双击、滑动和长按等。本篇文章将深入探讨如何使用`GestureDetector`实现手势滑动,...
1. **添加触摸监听事件**: 在需要监听手势的View上设置`OnTouchListener`。例如,在`MainActivity`中,我们将`ImageView`作为监听对象,通过`setOnTouchListener`为其设置监听器。 2. **利用GestureDetector转发...
`GestureDetector`是Android SDK提供的一种用于检测常见触摸手势的工具类,比如单击、长按、滑动等。本教程将详细讲解如何利用`GestureDetector`来实现一个页面滑动的Demo。 首先,我们需要了解`GestureDetector`的...
- 为CoverFlow视图设置一个自定义的滑动监听器,以便在检测到用户开始滑动时,阻止其他视图接收滑动事件。 - 在CoverFlow的内部,使用Scroller进行平滑滚动,以实现流畅的过渡效果。 - 可能还包含了对边缘滑动事件的...
接下来,我们需要在Java代码中初始化ViewFlipper和箭头图标,并设置滑动监听。这里可以使用GestureDetector来识别滑动手势: ```java public class MainActivity extends AppCompatActivity { private ...
通过这个项目,开发者不仅可以学习到如何使用`GestureDetector`监听滑动事件,还可以了解到Android手势识别的基本原理和实践,从而提升应用的用户体验。在实际开发中,可以将这些知识灵活运用到各种场景,如列表滑动...
Android提供了`GestureDetector`类,它是处理触摸事件和手势的基础类。它封装了基本的手势,如单击、长按、滑动等。`OnGestureListener`是`GestureDetector`的一个接口,我们可以通过实现这个接口的几个方法来监听和...
开发者可以通过重写`GestureDetector.SimpleOnGestureListener`中的方法来监听这些手势事件。例如,`onDown()`用于检测手指触摸屏幕的初始动作,`onScroll()`则用于处理手指滑动过程,而`onFling()`则用于识别快速...
综上所述,实现`Android ViewPager`与仿`Gallery`的`HorizontalScrollView`互相滑动监听涉及多个层次的技术,包括自定义适配器、滑动事件监听、手势识别等。这需要开发者具备扎实的Android基础知识,对组件工作原理...