我正在尝试开发一个类似于"的颜色测量的Android应用程序"或者"颜色抓取"已经在谷歌播放。 我在获取视图的确切位置(其作用类似于焦点方块)并将其移动到用户触摸屏幕的位置时遇到问题。我已经做了很多搜索但是所有这些搜索都以onTouchEvent()结束,我使用它但是它没有正常工作或者我做错了。 实际上视图会移动,但它不会准确地放置在用户触摸的位置,它将在y轴上的触摸区域下方移动一段距离。
这是我的代码,其中mFocusRectangle是我要移动到触摸位置的自定义视图:
@Override
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
if (event.getPointerCount() > 1) {
// handle multi-touch events
} else {
// handle single touch events
if(action==MotionEvent.ACTION_DOWN){
}
if (action == MotionEvent.ACTION_UP) {
int pointerId = event.getPointerId(0);
int pointerIndex = event.findPointerIndex(pointerId);
// Get the pointer's current position
float x = event.getX(pointerIndex);
float y = event.getY(pointerIndex);
mFocusRectangle.showStart();
mFocusRectangle.setX(x);
mFocusRectangle.setY(y);
}
}
return true;
}
我也尝试了MotionEvent.ACTION_DOWN,但结果是一样的。 提前谢谢。
答案 0 :(得分:0)
试试这个
float x = event.getX(pointerIndex) - (mFocusRectangle.getWidth() / 2);
float y = event.getY(pointerIndex) - (mFocusRectangle.getHeight() / 2);
币: 曼尼托巴省 - Android move view on touch event