草庐IT

MotionEvent

全部标签

Android ImageView 放大和缩小

我想放大和缩小AndroidImageView。我尝试了大多数示例,但在所有示例中,ImageView本身的图像都被放大和缩小,而我想放大和缩小ImageView。我想在放大时增加ImageView的宽度和高度,并在缩小时减少ImageView的宽度和高度。我如何做到这一点? 最佳答案 请按照下面的类,用于ImageView的放大和缩小。importandroid.app.Activity;importandroid.graphics.Matrix;importandroid.graphics.PointF;importandroi

android:在触摸移动时移动 View (ACTION_MOVE)

我想做一个简单的控件:一个里面有View的容器。如果我触摸容器并移动手指,我想移动View以跟随我的手指。我应该使用哪种容器(布局)?如何做到这一点?我不需要使用表面,而是使用简单的布局。 最佳答案 我发现了一种使用ViewPropertyAnimator的简单方法:floatdX,dY;@OverridepublicbooleanonTouch(Viewview,MotionEventevent){switch(event.getAction()){caseMotionEvent.ACTION_DOWN:dX=view.getX(

android:在触摸移动时移动 View (ACTION_MOVE)

我想做一个简单的控件:一个里面有View的容器。如果我触摸容器并移动手指,我想移动View以跟随我的手指。我应该使用哪种容器(布局)?如何做到这一点?我不需要使用表面,而是使用简单的布局。 最佳答案 我发现了一种使用ViewPropertyAnimator的简单方法:floatdX,dY;@OverridepublicbooleanonTouch(Viewview,MotionEventevent){switch(event.getAction()){caseMotionEvent.ACTION_DOWN:dX=view.getX(

android - MotionEvent GetY() 和 getX() 返回不正确的值

我有以下情况:我有一个带有ImageView和TextView的自定义ListView。ImageView有一个onTouchListener,它调用我的onTouch方法。以下是其中的一些内容:if(event.getAction()==MotionEvent.ACTION_MOVE){layout.leftMargin=(int)event.getX()-dragIcon.getWidth()/2;layout.topMargin=(int)event.getY()-dragIcon.getHeight()/2;//Log.d("Tag","Pozycja:"+event.getX

android - 是什么导致了 Android 中的 MotionEvent.ACTION_CANCEL?

我正在调试Android上的一些触摸处理内容,并试图弄清楚为什么发送到我的View的onTouchListener的MotionEvent包含cancel操作。我找不到任何关于其原因的文档,希望有人能指出我调试此问题的正确方向-错误代码、源代码或一些常识。 最佳答案 这是你要找的东西吗:“ACTION_CANCEL发生在父进程拥有该议案时,例如,当用户在ListView中拖得足够多时,它将开始滚动,而不是让您按下其中的按钮。您可以在View组文档中找到更多相关信息:onInterceptTouchEvent。”希望这是您正在寻找的答

android - 在 Android 中,MotionEvent 中的 getAction() 和 getActionMasked() 有什么区别?

我对Android中的两种方法感到困惑。它似乎这两种方法都告诉你它是什么类型的事件,即,是向下事件还是向上事件。我什么时候用哪个?publicvoidonTouchEvent(MotionEvente)请不要引用文档,因为我读过它,但我没有看到任何参数可以提供给任何一种方法来获得不同的东西。publicfinalintgetAction()和publicfinalintgetActionMasked() 最佳答案 getAction()返回一个指针id和一个事件(即向上、向下、移动)信息。getActionMasked()只返回一个

Android:如何创建 MotionEvent?

MotionEvent没有构造函数,我想在我的单元测试中手动创建一个MotionEvent,那么如何获得呢?谢谢。 最佳答案 您应该使用MotionEvent类的静态obtain方法之一来创建新事件。最简单的方法(除了从现有事件中包装一个新事件)是:staticpublicMotionEventobtain(longdownTime,longeventTime,intaction,floatx,floaty,intmetaState){API文档:CreateanewMotionEvent,fillinginasubsetofthe

Android 双击单击事件监听手势检测GestureDetector原理及实现

app我们常用的手势有很多的地方,比如右滑关闭界面等。手势控制分为触发动作(TouchMechanics,用户手指在屏幕上如何动作)和触发行为(TouchActivities,界面上特定动作在特定情境下引发的结果)。这是因为同样的触发动作(如单次触击)在不同情境下可能会带来不同的结果(如轻触,取消,开启/关闭指示),同样单次触发行为(如放大)可能是由多种触发动作(如捏放,双次触击,双次触击拖拽等)实现。  一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(Viewv,MotionEventevent)方法,我们可以处理一些touch

Android 双击单击事件监听手势检测GestureDetector原理及实现

app我们常用的手势有很多的地方,比如右滑关闭界面等。手势控制分为触发动作(TouchMechanics,用户手指在屏幕上如何动作)和触发行为(TouchActivities,界面上特定动作在特定情境下引发的结果)。这是因为同样的触发动作(如单次触击)在不同情境下可能会带来不同的结果(如轻触,取消,开启/关闭指示),同样单次触发行为(如放大)可能是由多种触发动作(如捏放,双次触击,双次触击拖拽等)实现。  一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(Viewv,MotionEventevent)方法,我们可以处理一些touch

Android事件分发过程(笔记)

之前都是在网上看别人的文章,很容易忘掉,今天重新翻一下源码并简单记录一下先简单看一下dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent这三个方法在Activity、ViewGroup、View中是怎么个流程。如下图(有些地方可能画的不太准确)事件分发流程.png源码根据上图我们再梳理一下源码就容易很多了。Activity事件传递先从Activity的dispatchTouchEvent看起publicbooleandispatchTouchEvent(MotionEventev){//判断是否是MotionEvent.ACTION_DOW