首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Fish

    OnTouchListener的使用

    最近在搞软件杯的事,要提取按键时的具体信息,包括按下去的时间和弹起的时间,还有按的是哪个键等等,发现用普通的OnClickListener无法做到,于是乎查了一下,就用OnTouchListener这个监听器来做 而我以前喜欢用的是用匿名内部类的方法,使用新建的类有个好处就是可以使代码简化 //对于到底是哪个按键调用的,利用了getId()这个方法就可以 public class TimeListener implements OnTouchListener

    830100发布于 2018-01-09
  • 来自专栏程思阳的专栏

    Android:OnTouchListener的简单使用,按钮点击放大与缩小

    OnTouchListene是用来监听手机屏幕事件的监听,用来处理按下,抬起,滑动等动作 具体的有3中情况:UP抬起 DOWN按下 MOVE滑动 使用: 在Activity中,实现OnTouchListener setOnTouchListener 最后可以根据ID的不同,对不同的控件按下,抬起,滑动事件做不同的处理 通常在设计UI界面时,为了用户体验更好,通常在用户按下某个控件之后会有相应的小范围变大效果,在弹起之后,会恢复原样,这里可以用OnTouchListener android:toYScale="100%" android:pivotX="50%" android:pivotY="50%" android:fillAfter="true" ②实现OnTouchListener

    4K10编辑于 2022-01-10
  • 来自专栏韩曙亮的移动开发专栏

    【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 四 | View 事件传递机制 )

    , 都设置在 View 的 View.ListenerInfo 类型成员中 ; 判断该组件是否被用户设置了 触摸监听器 OnTouchListener , 如果设置了 , 则执行被用户设置的 触摸监听器 OnTouchListener ; 如果用户设置的 触摸监听器 OnTouchListener 触摸方法返回 true , 此时该分发方法的返回值就是 true ; public class View // 触摸监听器 OnTouchListener 返回 false , 点击监听器 OnClickListener 才能被调用到 if (! // 触摸监听器 OnTouchListener 返回 false , 点击监听器 OnClickListener 才能被调用到 if (! // 触摸监听器 OnTouchListener 返回 false , 点击监听器 OnClickListener 才能被调用到 if (!

    2.5K10编辑于 2023-03-29
  • 来自专栏曾大稳的博客

    Android View的Touch事件分发

    可以发现执行的顺序是: OnTouchListener.DOWN -> OnTouchEvent.DOWN -> OnTouchListener.MOVE -> OnTouchEvent.MOVE -> OnTouchListener.UP-> OnTouchEvent.UP-> OnClickListener 从这我们就可以猜想执行的优先级为 OnTouchListener > onTouchEvent 这时候执行的顺序如下: OnTouchListener.DOWN ->OnTouchListener.MOVE-> OnTouchListener.UP 这里验证了我的猜想,可以得到如下结论 View 和我们想的一致,这时候执行顺序变为: OnTouchListener.DOWN ->OnTouchEvent.DOWN-> OnTouchListener.MOVE -> OnTouchEvent.MOVE 从这我们就可以知道OnTouchListener的优先级大于onTouchEvent。

    1.4K20发布于 2018-09-11
  • 来自专栏Android Camera开发

    Android基础_事件分发源码走读

    onTouchEvent(event)) { result = true; } } public void setOnTouchListener(OnTouchListener 监听,这会会执行OnTouchListener的监听,如果onTouchLister return true,则表示事件被消费掉了,会直接return true,事件分发结束;可以重写setOnTouchListener 分析4:OnTouchListener中返回false,则会往下执行onTouchEvent(ev)方法,onTouchEvent(ev)中会执行performClick()方法,这时如果view设置了 这里也可以看到,onTouchListener的执行会先于onClickListener. 监听,onTouchListener return false,后面才会执行view 的onClick监听。

    71520发布于 2021-04-30
  • 来自专栏指点的专栏

    Android 中 View 的手势事件处理

    ); // 设置触摸事件监听对象 } /* * 自定义触摸事件的监听对象 */ private View.OnTouchListener onTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent 最后还有一个问题:当一个 View 中既有 onTouchEvent 方法并且设置了 OnTouchListener 接口时,情况是怎样的呢? 接口的 onTouch 方法的优先级是高于 View 里面自带的 onTouchEvent 方法的,当 View 设置了 OnTouchListener 接口并且 onTouch 方法返回 true 所以说 OnTouchListener 接口和 View 中自带的 onTouchEvent 方法是不能同时使用的。有兴趣的小伙伴可以自己去试验一下。Ok,这个问题就解决了。

    2.1K20发布于 2019-01-18
  • 来自专栏刘晓杰

    getX和getRawX

    布局文件就一个button 代码如下: button.setOnTouchListener(new OnTouchListener() { int lastX 是表示组件相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕) 如果你的某个Activity中实现OnTouchListener 下面简单来讲讲onTouch和onTouchEvent的区别 onTouch:属于某个组件的OnTouchListener接口,点击组件有效 onTouchEvent:属于Activity,点击全屏幕有效

    92520发布于 2019-03-01
  • 来自专栏知识分享

    用ESP8266+android,制作自己的WIFI小车(Android 软件)用ESP8266+android,制作自己的WIFI小车(ESP8266篇)

    private OnTouchListener buttonconnect1Touch = new OnTouchListener() { @Override buttonconnect1Touch = new OnTouchListener() { @Override public boolean onTouch buttonconnect1Touch = new OnTouchListener() { @Override public boolean onTouch buttonconnect1Touch = new OnTouchListener() { @Override public boolean onTouch buttonconnect1Touch = new OnTouchListener() { @Override public boolean onTouch

    3.8K40发布于 2018-04-12
  • 来自专栏Biubiu说

    谷歌地图与 NestedScrollView 滑动冲突

    google-map-fragment-scrolling-inside-nestedscrollview */ public class MySupportMapFragment extends SupportMapFragment { private OnTouchListener ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); return layout; } public void setListener(OnTouchListener listener) { mListener = listener; } public interface OnTouchListener { public

    1.7K20发布于 2019-03-19
  • 来自专栏三好码农的三亩自留地

    Android触摸事件传递(上)

    接下来,我们给EventBtn添加onTouchListener,并返回true ?    运行App,查看打印的日志, ?     我们看到,没有打印 btn clicked日志,验证了我们说明的View事件传递的第一部分,触摸事件ev,优先被onTouchListener消费掉了,后面的onTouchEvent和onClickListener 下面我们将onTouchListener的返回值改为false,并重写EventBtn onTouchEvent方法,并返回true。 ?    运行App,点击按钮,查看打印的日志, ?     这也验证了我们关于View触摸事件传递的第二部分,触摸事件ev优先被onTouchListener消费,然后再让传递给onTouchEvent消费。     看到源码,很一目了然,框架先调用onTouchListener,如果事件没有被消费掉,再调用onTouchEvent,最后result表示此触摸事件是否被消费,作为返回值。    

    1.6K30发布于 2018-09-11
  • 来自专栏jianhuicode

    事件分发机制学习

    0x02 事件分发的优先级  同时重写View中的onTouchEvent,设置View的onTouchListener与onClickListener  首先调用onTouchListener,若返回值为 总结:优先级顺序:onTouchListener>onTouchEvent>onClick 0x03 事件回传过程 ?

    791100发布于 2018-01-17
  • 来自专栏知识分享

    android之WIFI小车编程详述

    的使用,,找度娘,我也是找的度娘,不要偷懒呦 //前进 private OnTouchListener forwordButtonTouch = new OnTouchListener() { forwordButtonTouch = new OnTouchListener() { @Override public boolean onTouch backButtonTouch = new OnTouchListener() { @Override public boolean leftButtonTouch = new OnTouchListener() { @Override public boolean onTouch( righButtonTouch = new OnTouchListener() { @Override public boolean onTouch(

    1.8K90发布于 2018-04-12
  • 来自专栏全栈程序员必看

    OnTouch关于performClick的Warning

    setOnTouchListener() 或者是对你的自定义控件重写onTouchEvent方法时会出现这个警告,警告内容全文如下 If a View that overrides onTouchEvent or uses an OnTouchListener 大概的意思是说 如果一个覆盖了onTouchEvent方法或者使用了OnTouchListener的控件没有引用performClick并且调用它的点击事件被拦截,控件可能不能合适的处理访问操作。 Warning,那么除了在控件内重写performClick()外,也需要在onTouch()中调用performClick(): button.setOnTouchListener(new View.OnTouchListener

    72930编辑于 2022-07-04
  • 来自专栏向治洪

    图片移动并进行边界判断

    android.util.DisplayMetrics;  import android.view.MotionEvent;  import android.view.View;  import android.view.View.OnTouchListener movingEventListener);          img2.setOnTouchListener(movingEventListener);      }      private OnTouchListener movingEventListener = new OnTouchListener() {          int lastX, lastY;          @Override         

    1.7K100发布于 2018-01-29
  • 来自专栏向治洪

    android view事件分发机制

               mButton = (Button) findViewById(R.id.id_btn);           mButton.setOnTouchListener(new OnTouchListener }   return false;               }           });       }   }   在MainActivity中,我们还给MyButton设置了OnTouchListener   * @param l the touch listener to attach to this view   */ public void setOnTouchListener(OnTouchListener View的事件转发流程是: View.dispatchEvent->View.setOnTouchListener->View.onTouchEvent 在dispatchTouchEvent中会进行OnTouchListener 的判断,如果OnTouchListener不为null且返回true,则表示事件被消费,onTouchEvent不会被执行;否则执行onTouchEvent。

    1.4K60发布于 2018-01-30
  • 来自专栏陶士涵的菜地

    [android] 练习PopupWindow实现对话框

    android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener popupWindow.setTouchable(true); popupWindow.setTouchInterceptor(new OnTouchListener

    62430发布于 2019-09-10
  • 来自专栏kevindroid

    Android 点击屏幕其他位置隐藏Floating Action Button

    public void onMenuCollapsed() { } }); } } 为了实现点击屏幕其他地方隐藏fab,需要实现onTouchListener public class FabFragment extends Fragment implements View.OnClickListener, View.OnTouchListener {

    2.7K60发布于 2018-06-20
  • 来自专栏陶士涵的菜地

    [android] 图片画画板

    Canvas(bitmap) 调用Canvas对象的drawColor()方法,初始化背景颜色,参数:Color.WHITE白色 调用ImageView对象的setOnTouchListener()方法,参数:OnTouchListener android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener ); canvas.drawColor(Color.WHITE); // 设置手指滑动事件 iv_img.setOnTouchListener(new OnTouchListener

    1.2K70发布于 2019-09-10
  • 来自专栏设计模式

    一文读懂Android View事件分发机制

    上面代码我们给button设置了OnTouchListener并重写了onTouch方法,方法返回值默认为false。如果这里我们返回true,那么你会发现onclick方法不执行了!!!What? ViewGroup也是View)而言,如果设置了onTouchListener,那么OnTouchListener方法中的onTouch方法会被回调。 通过上面代码我们可以看到View会先判断是否设置了OnTouchListener,如果设置了OnTouchListener并且onTouch方法返回了true,那么onTouchEvent不会被调用。 当没有设置OnTouchListener或者设置了OnTouchListener但是onTouch方法返回false则会调用View自己的onTouchEvent方法。

    55120发布于 2020-12-15
  • 来自专栏风吹杨柳

    2014-11-8Android学习------手势识别事件的处理GestureDetector--------动画Animation学习篇

    首先,Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现; 其次,所有View的子类都可以通过setOnTouchListener 可以看到有两个接口可以让我们利用:OnGestureListener和onTouchListener 首先我们看看onTouchListener public class MyGesture extends Activity implements OnTouchListener { public void onCreate(Bundle savedInstanceState) { false; } } 其次我们看看OnGestureListener public class MyGesture extends Activity implements OnTouchListener SimpleGestureListener,这里你可以自己去选择自己想要实现的方法,不需要那么多无关的代码 public class MyGesture extends Activity implements OnTouchListener

    1K40编辑于 2022-03-07
领券