相关疑难解决方法(0)

如何区分onTouchEvent()中的move和click?

在我的应用程序中,我需要处理移动和单击事件.

单击是一个ACTION_DOWN操作的序列,几个ACTION_MOVE操作和一个ACTION_UP操作.理论上,如果您获得ACTION_DOWN事件然后获得ACTION_UP事件 - 这意味着用户刚刚单击了您的视图.

但实际上,这个序列在某些设备上不起作用.在我的三星Galaxy Gio上,只需单击我的视图:ACTION_DOWN,几次ACTION_MOVE,然后ACTION_UP即可获得此类序列.即我使用ACTION_MOVE动作代码获得了一些无法预料的OnTouchEvent激活.我从未(或几乎从不)获得序列ACTION_DOWN - > ACTION_UP.

我也不能使用OnClickListener,因为它没有给出点击的位置.那么如何检测点击事件并将其与移动区分开来呢?

android event-handling touch-event android-event

70
推荐指数
6
解决办法
4万
查看次数

Android SDK - 在触控中心不缩放

我的应用程序有点问题.我刚刚实现了捏缩放,但是当我捏缩放时,图像不会在2点的中心缩放,如下图所示.图像1是我的手指在捏之前的位置,图像2是显示它没有像我应该的那样在我的手指中心缩放.

图1与图2:
此搜索 图像2

这是我的代码:

        package com.jpiionefourone.guitarimage;

    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.drawable.Drawable;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.view.ScaleGestureDetector;
    import android.view.View;

    public class MultiTouchView extends View {
        private Drawable mIcon;
        private float mPosX;
        private float mPosY;

        private float mLastTouchX;
        private float mLastTouchY;

        private static final int INVALID_POINTER_ID = -1;

        // The ‘active pointer’ is the one currently moving our object.
        private int mActivePointerId = INVALID_POINTER_ID;

        private ScaleGestureDetector mScaleDetector;
        private float mScaleFactor = 1.f;


        public MultiTouchView(Context context) {
            this(context, null, 0);
        }

        public …
Run Code Online (Sandbox Code Playgroud)

sdk android pinchzoom

9
推荐指数
1
解决办法
2604
查看次数