android - 为什么onTouch事件的event.getRawX() 等参数使用强转到int反而更准确了

浏览:56日期:2022-11-17

问题描述

为什么onTouch事件的event.getRawX() 等参数使用强转到int反而更准确了

mImageView.setOnTouchListener(new View.OnTouchListener() { private int mStartX; private int mStartY; @Override public boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) { case MotionEvent.ACTION_DOWN:mStartX = (int) event.getRawX();mStartY = (int) event.getRawY();break; case MotionEvent.ACTION_MOVE:int newX = (int) event.getRawX();int newY = (int) event.getRawY();int moveX = newX - mStartX;int moveY = newY - mStartY;mParams.x += moveX;mParams.y += moveY;mStartX = (int) event.getRawX();mStartY = (int) event.getRawY();mWindowManager.updateViewLayout(mImageView,mParams);break; case MotionEvent.ACTION_UP:Toast.makeText(RocketService.this, 'asdgasds', Toast.LENGTH_SHORT).show();break;}return true; }

问题解答

回答1:

因为强转损失了精度

相关文章: