Android - 获取被触摸的位置并将视图移动到该位置

时间:2014-11-16 14:02:30

标签: android android-layout android-animation

我有点想克隆谷歌的材料设计中发现的涟漪效应。现在,我注意到波纹总是从被触摸的位置开始。为此,我创建了一个drawable,它最初是不可见的,但一旦触摸到视图就会变得可见。然后,包含ImageView的{​​{1}}将移动到触摸的位置,此后将开始波纹动画。现在,在尝试这样做的同时,我磕磕绊绊地找到了一个我无法弄清楚如何找到被触及的位置的东西。我在stackoverflow上遇到了几个问题,它说可以通过使用以下代码找到触摸位置。

drawable

我确实尝试在我的应用中实现此代码,但我最终得到了@Override public boolean onTouch(View v, MotionEvent e) { int X = (int)(e.getX()); int Y = (int)(e.getY()); return false; } 。请告诉我如何找到被触摸的屏幕的确切位置并将视图移动到那里?

2 个答案:

答案 0 :(得分:0)

像这样使用:

@Override
public boolean onTouch(View v, MotionEvent e) {
  if(e.getAction() == MotionEvent.ACTION_DOWN) { //ACTION_DOWN for the position touched.
    int X = (int)(e.getX());
    int Y = (int)(e.getY());
  }
  return false;
}

答案 1 :(得分:0)

你应该获得ACTION_DOWN事件的位置,然后移动你的视图

public boolean onTouchEvent(MotionEvent event) {
  switch (event.getAction()) {
     case MotionEvent.ACTION_DOWN:
          float x = event.getX();
          float y = event.getY();
          break;
    case MotionEvent.ACTION_MOVE:
        break;
    case MotionEvent.ACTION_UP:
        break;
}
return true;
}