我只是想要一个简单的东西。我有一个 imageview
,我可以通过触摸来移动它
这是我的代码,如果错了我很抱歉,因为我自己试过了
img.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
if (arg1.getAction() == MotionEvent.ACTION_DOWN) {
status = StartDrag;
} else if (arg1.getAction() == MotionEvent.ACTION_UP) {
status = StopDrag;
}
return false;
}
});
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if (status == StartDrag) {
params.leftMargin = (int) event.getX();
params.topMargin = (int) event.getY();
img.setLayoutParams(params);
}
return super.onTouchEvent(event);
}
你能告诉我正确的方法吗?
最佳答案
我是这样做的:
private float xCoOrdinate, yCoOrdinate;
onCreate():
ImageView imageView = (ImageView)findViewById(R.id.imageView);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
xCoOrdinate = view.getX() - event.getRawX();
yCoOrdinate = view.getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
view.animate().x(event.getRawX() + xCoOrdinate).y(event.getRawY() + yCoOrdinate).setDuration(0).start();
break;
default:
return false;
}
return true;
}
});
完成
关于android - 带有触摸事件的移动 ImageView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814542/