android - OnTouchListener - ActionMove (android) 在一个触摸点给出不同的位置

标签 android events view move

我正在尝试在我的 FrameLayout 中制作可 move 的文本。在 TextView 中,我设置了 OnTouchListener,您可以在下面看到它。问题是,当我触摸 textview(没有手指 move )时,OnTouchListener 给出了不同的位置,而我的 TextView 在不同的位置之间跳跃。我还放了 LogCat 结果,这与这种情况有关。感谢您的帮助。

onTouchListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            Log.w("KKK", "ONTOUCH EVENT: "+motionEvent.getAction());
            switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:
                    ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
                    lastTouchX = motionEvent.getX();
                    lastTouchY = motionEvent.getY();
                    Log.w("KKK", "ACTION DOWN X: " + lastTouchX + " Y: " + lastTouchY);
                    break;
                case MotionEvent.ACTION_MOVE:
                    Log.w("KKK", "ACTION MOVE BEFORE X: " + lastTouchX + " Y: " + lastTouchY);
                    float beforeX = lastTouchX, beforeY = lastTouchY;
                    lastTouchX = motionEvent.getX();
                    lastTouchY = motionEvent.getY();
                    Log.w("KKK", "ACTION MOVE AFTER X: " + lastTouchX + " Y: " + lastTouchY);
                    Log.w("KKK", "ACTION MOVE DELTA X: " + (beforeX - lastTouchX) + " Y: " + (beforeY - lastTouchY));
                    float delX = lastTouchX - beforeX;
                    float delY = lastTouchY - beforeY;
                    ViewGroup.MarginLayoutParams lp1 =  (ViewGroup.MarginLayoutParams) view.getLayoutParams();
                    lp1.setMargins(lp1.leftMargin+(int)delX, lp1.topMargin+(int)delY, lp1.rightMargin, lp1.bottomMargin);
                    view.setLayoutParams(lp1);
                    break;
            }
            return true;
        };
    };    

日志:

07-23 14:02:49.494: W/KKK(24257): ONTOUCH EVENT: 0
07-23 14:02:49.494: W/KKK(24257): ACTION DOWN X: 80.0 Y: 70.0
07-23 14:02:49.514: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.514: W/KKK(24257): ACTION MOVE BEFORE X: 80.0 Y: 70.0
07-23 14:02:49.514: W/KKK(24257): ACTION MOVE AFTER X: 185.4158 Y: 73.4769
07-23 14:02:49.514: W/KKK(24257): ACTION MOVE DELTA X: -105.4158 Y: -3.4768982
07-23 14:02:49.554: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.554: W/KKK(24257): ACTION MOVE BEFORE X: 185.4158 Y: 73.4769
07-23 14:02:49.554: W/KKK(24257): ACTION MOVE AFTER X: 71.92239 Y: 68.4794
07-23 14:02:49.554: W/KKK(24257): ACTION MOVE DELTA X: 113.49341 Y: 4.9974976
07-23 14:02:49.574: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.574: W/KKK(24257): ACTION MOVE BEFORE X: 71.92239 Y: 68.4794
07-23 14:02:49.574: W/KKK(24257): ACTION MOVE AFTER X: 185.43243 Y: 72.4794
07-23 14:02:49.574: W/KKK(24257): ACTION MOVE DELTA X: -113.51004 Y: -4.0
07-23 14:02:49.604: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.604: W/KKK(24257): ACTION MOVE BEFORE X: 185.43243 Y: 72.4794
07-23 14:02:49.604: W/KKK(24257): ACTION MOVE AFTER X: 68.70996 Y: 68.4794
07-23 14:02:49.604: W/KKK(24257): ACTION MOVE DELTA X: 116.72247 Y: 4.0
07-23 14:02:49.644: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.644: W/KKK(24257): ACTION MOVE BEFORE X: 68.70996 Y: 68.4794
07-23 14:02:49.644: W/KKK(24257): ACTION MOVE AFTER X: 183.23611 Y: 71.7446
07-23 14:02:49.644: W/KKK(24257): ACTION MOVE DELTA X: -114.52615 Y: -3.2651978
07-23 14:02:49.654: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.654: W/KKK(24257): ACTION MOVE BEFORE X: 183.23611 Y: 71.7446
07-23 14:02:49.654: W/KKK(24257): ACTION MOVE AFTER X: 67.1391 Y: 68.04501
07-23 14:02:49.654: W/KKK(24257): ACTION MOVE DELTA X: 116.097015 Y: 3.699585
07-23 14:02:49.694: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.694: W/KKK(24257): ACTION MOVE BEFORE X: 67.1391 Y: 68.04501
07-23 14:02:49.694: W/KKK(24257): ACTION MOVE AFTER X: 184.44492 Y: 71.48065
07-23 14:02:49.694: W/KKK(24257): ACTION MOVE DELTA X: -117.30582 Y: -3.4356384
07-23 14:02:49.714: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.714: W/KKK(24257): ACTION MOVE BEFORE X: 184.44492 Y: 71.48065
07-23 14:02:49.714: W/KKK(24257): ACTION MOVE AFTER X: 67.444916 Y: 68.48065
07-23 14:02:49.714: W/KKK(24257): ACTION MOVE DELTA X: 117.0 Y: 3.0
07-23 14:02:49.724: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.724: W/KKK(24257): ACTION MOVE BEFORE X: 67.444916 Y: 68.48065
07-23 14:02:49.724: W/KKK(24257): ACTION MOVE AFTER X: 184.44492 Y: 71.48065
07-23 14:02:49.724: W/KKK(24257): ACTION MOVE DELTA X: -117.0 Y: -3.0
07-23 14:02:49.764: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.764: W/KKK(24257): ACTION MOVE BEFORE X: 184.44492 Y: 71.48065
07-23 14:02:49.764: W/KKK(24257): ACTION MOVE AFTER X: 67.444916 Y: 68.48065
07-23 14:02:49.764: W/KKK(24257): ACTION MOVE DELTA X: 117.0 Y: 3.0
07-23 14:02:49.794: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.794: W/KKK(24257): ACTION MOVE BEFORE X: 67.444916 Y: 68.48065
07-23 14:02:49.794: W/KKK(24257): ACTION MOVE AFTER X: 179.32318 Y: 70.19916
07-23 14:02:49.794: W/KKK(24257): ACTION MOVE DELTA X: -111.878265 Y: -1.7185059
07-23 14:02:49.814: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.814: W/KKK(24257): ACTION MOVE BEFORE X: 179.32318 Y: 70.19916
07-23 14:02:49.814: W/KKK(24257): ACTION MOVE AFTER X: 69.45322 Y: 69.4819
07-23 14:02:49.814: W/KKK(24257): ACTION MOVE DELTA X: 109.869965 Y: 0.71725464
07-23 14:02:49.854: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.854: W/KKK(24257): ACTION MOVE BEFORE X: 69.45322 Y: 69.4819
07-23 14:02:49.854: W/KKK(24257): ACTION MOVE AFTER X: 173.34717 Y: 69.4819
07-23 14:02:49.854: W/KKK(24257): ACTION MOVE DELTA X: -103.89395 Y: 0.0
07-23 14:02:49.864: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.864: W/KKK(24257): ACTION MOVE BEFORE X: 173.34717 Y: 69.4819
07-23 14:02:49.864: W/KKK(24257): ACTION MOVE AFTER X: 71.46155 Y: 69.4819
07-23 14:02:49.864: W/KKK(24257): ACTION MOVE DELTA X: 101.88562 Y: 0.0
07-23 14:02:49.904: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.904: W/KKK(24257): ACTION MOVE BEFORE X: 71.46155 Y: 69.4819
07-23 14:02:49.904: W/KKK(24257): ACTION MOVE AFTER X: 172.46155 Y: 69.4819
07-23 14:02:49.904: W/KKK(24257): ACTION MOVE DELTA X: -101.0 Y: 0.0
07-23 14:02:49.934: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.934: W/KKK(24257): ACTION MOVE BEFORE X: 172.46155 Y: 69.4819
07-23 14:02:49.934: W/KKK(24257): ACTION MOVE AFTER X: 71.46155 Y: 69.4819
07-23 14:02:49.934: W/KKK(24257): ACTION MOVE DELTA X: 101.0 Y: 0.0
07-23 14:02:49.975: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:49.975: W/KKK(24257): ACTION MOVE BEFORE X: 71.46155 Y: 69.4819
07-23 14:02:49.975: W/KKK(24257): ACTION MOVE AFTER X: 172.46155 Y: 69.4819
07-23 14:02:49.975: W/KKK(24257): ACTION MOVE DELTA X: -101.0 Y: 0.0
07-23 14:02:50.015: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.015: W/KKK(24257): ACTION MOVE BEFORE X: 172.46155 Y: 69.4819
07-23 14:02:50.015: W/KKK(24257): ACTION MOVE AFTER X: 71.46155 Y: 69.4819
07-23 14:02:50.015: W/KKK(24257): ACTION MOVE DELTA X: 101.0 Y: 0.0
07-23 14:02:50.025: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.025: W/KKK(24257): ACTION MOVE BEFORE X: 71.46155 Y: 69.4819
07-23 14:02:50.035: W/KKK(24257): ACTION MOVE AFTER X: 172.46155 Y: 69.4819
07-23 14:02:50.035: W/KKK(24257): ACTION MOVE DELTA X: -101.0 Y: 0.0
07-23 14:02:50.065: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.065: W/KKK(24257): ACTION MOVE BEFORE X: 172.46155 Y: 69.4819
07-23 14:02:50.065: W/KKK(24257): ACTION MOVE AFTER X: 69.128845 Y: 68.703705
07-23 14:02:50.065: W/KKK(24257): ACTION MOVE DELTA X: 103.3327 Y: 0.77819824
07-23 14:02:50.075: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.075: W/KKK(24257): ACTION MOVE BEFORE X: 69.128845 Y: 68.703705
07-23 14:02:50.085: W/KKK(24257): ACTION MOVE AFTER X: 170.1532 Y: 68.04462
07-23 14:02:50.085: W/KKK(24257): ACTION MOVE DELTA X: -101.02435 Y: 0.65908813
07-23 14:02:50.115: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.115: W/KKK(24257): ACTION MOVE BEFORE X: 170.1532 Y: 68.04462
07-23 14:02:50.115: W/KKK(24257): ACTION MOVE AFTER X: 70.46777 Y: 68.483154
07-23 14:02:50.115: W/KKK(24257): ACTION MOVE DELTA X: 99.685425 Y: -0.4385376
07-23 14:02:50.135: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.135: W/KKK(24257): ACTION MOVE BEFORE X: 70.46777 Y: 68.483154
07-23 14:02:50.135: W/KKK(24257): ACTION MOVE AFTER X: 169.46777 Y: 68.483154
07-23 14:02:50.135: W/KKK(24257): ACTION MOVE DELTA X: -99.0 Y: 0.0
07-23 14:02:50.165: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.165: W/KKK(24257): ACTION MOVE BEFORE X: 169.46777 Y: 68.483154
07-23 14:02:50.165: W/KKK(24257): ACTION MOVE AFTER X: 70.46777 Y: 68.483154
07-23 14:02:50.165: W/KKK(24257): ACTION MOVE DELTA X: 99.0 Y: 0.0
07-23 14:02:50.185: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.185: W/KKK(24257): ACTION MOVE BEFORE X: 70.46777 Y: 68.483154
07-23 14:02:50.185: W/KKK(24257): ACTION MOVE AFTER X: 169.46777 Y: 68.483154
07-23 14:02:50.185: W/KKK(24257): ACTION MOVE DELTA X: -99.0 Y: 0.0
07-23 14:02:50.225: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.225: W/KKK(24257): ACTION MOVE BEFORE X: 169.46777 Y: 68.483154
07-23 14:02:50.225: W/KKK(24257): ACTION MOVE AFTER X: 70.46777 Y: 68.483154
07-23 14:02:50.225: W/KKK(24257): ACTION MOVE DELTA X: 99.0 Y: 0.0
07-23 14:02:50.235: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.235: W/KKK(24257): ACTION MOVE BEFORE X: 70.46777 Y: 68.483154
07-23 14:02:50.235: W/KKK(24257): ACTION MOVE AFTER X: 169.46777 Y: 68.483154
07-23 14:02:50.235: W/KKK(24257): ACTION MOVE DELTA X: -99.0 Y: 0.0
07-23 14:02:50.285: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.285: W/KKK(24257): ACTION MOVE BEFORE X: 169.46777 Y: 68.483154
07-23 14:02:50.295: W/KKK(24257): ACTION MOVE AFTER X: 70.46777 Y: 68.483154
07-23 14:02:50.295: W/KKK(24257): ACTION MOVE DELTA X: 99.0 Y: 0.0
07-23 14:02:50.305: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.305: W/KKK(24257): ACTION MOVE BEFORE X: 70.46777 Y: 68.483154
07-23 14:02:50.305: W/KKK(24257): ACTION MOVE AFTER X: 169.46777 Y: 68.483154
07-23 14:02:50.305: W/KKK(24257): ACTION MOVE DELTA X: -99.0 Y: 0.0
07-23 14:02:50.345: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.345: W/KKK(24257): ACTION MOVE BEFORE X: 169.46777 Y: 68.483154
07-23 14:02:50.345: W/KKK(24257): ACTION MOVE AFTER X: 70.46777 Y: 68.483154
07-23 14:02:50.345: W/KKK(24257): ACTION MOVE DELTA X: 99.0 Y: 0.0
07-23 14:02:50.365: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.365: W/KKK(24257): ACTION MOVE BEFORE X: 70.46777 Y: 68.483154
07-23 14:02:50.365: W/KKK(24257): ACTION MOVE AFTER X: 169.46777 Y: 68.483154
07-23 14:02:50.365: W/KKK(24257): ACTION MOVE DELTA X: -99.0 Y: 0.0
07-23 14:02:50.375: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.375: W/KKK(24257): ACTION MOVE BEFORE X: 169.46777 Y: 68.483154
07-23 14:02:50.375: W/KKK(24257): ACTION MOVE AFTER X: 70.46777 Y: 68.483154
07-23 14:02:50.375: W/KKK(24257): ACTION MOVE DELTA X: 99.0 Y: 0.0
07-23 14:02:50.395: W/KKK(24257): ONTOUCH EVENT: 2
07-23 14:02:50.395: W/KKK(24257): ACTION MOVE BEFORE X: 70.46777 Y: 68.483154
07-23 14:02:50.395: W/KKK(24257): ACTION MOVE AFTER X: 169.46777 Y: 68.483154
07-23 14:02:50.395: W/KKK(24257): ACTION MOVE DELTA X: -99.0 Y: 0.0
07-23 14:02:50.395: W/KKK(24257): ONTOUCH EVENT: 1

最佳答案

解决方法:

我变了

motionEvent.getX();

motionEvent.getRawX();

与Y坐标法类似,

效果很好。

关于android - OnTouchListener - ActionMove (android) 在一个触摸点给出不同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24910088/

相关文章:

c# - 异步。回发导致 Page_Init? (C#)

iOS:如何确定 super View 布局中 View 的大小?

android - 如果已知顶点和边,如何在 android ArCore 中找到以平方米为单位的面积?

android - 在 Android 的 Listview 中显示 SQLite 查询结果

java - onCreate 方法错误(FragmentActivity)

c# - 取消订阅从未订阅过的事件是否安全?

android - imeOptions 在 AutoCompleteTextView 中不起作用

javascript - 在 React Native 中渲染另一个 View

javascript - Angularjs View 不更新

android - Android : Possible? 上的动态 Midi 生成和播放