【发布时间】:2017-06-06 14:35:15
【问题描述】:
我想构建一个具有图像视图的应用程序,它只是跟随手指触摸。换句话说,图像视图跟随手指的触摸。我已经部分实现了这一点,因为图像视图跟随手指的触摸,但问题是它有一些偏移。 imageview 比实际触摸低一英寸。
下面是我的代码:
public class MainActivity extends AppCompatActivity {
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img1);
img.setImageResource(R.drawable.ic_remove_circle_black_24dp);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
img.setX(event.getX());
img.setY(event.getY());
return false;
}
}
偏移背后的原因是什么?
编辑:解决方案
以下代码可以满足我的需要:
public class MainActivity extends AppCompatActivity {
ImageView img;
int[] viewCoords = new int[2];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img1);
img.setImageResource(R.drawable.ic_remove_circle_black_24dp);
}
@Override
public boolean onTouchEvent(MotionEvent event){
img.getLocationOnScreen(viewCoords);
img.setX(event.getX()-(viewCoords[0]-img.getX()));
img.setY(event.getY()-(viewCoords[1]-img.getY()));
return true;
}
}
感谢 Doomsknight 的指导。
【问题讨论】:
标签: android touch-event motionevent