package com.jereh.learnbymyself.event;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import com.jereh.learnbymyself.R;
public class ImgMoveActivity extends AppCompatActivity {
private ImageView img;
private int lastX;
private int lastY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_img_move);
img = (ImageView) findViewById(R.id.img);
img.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//得到事件坐标
int eventX = (int) event.getRawX();
int eventY = (int) event.getRawY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//第一次记录lastX和lastY
lastX = eventX;
lastY = eventY;
break;
case MotionEvent.ACTION_MOVE:
//计算偏移
int dx = eventX - lastX;
int dy = eventY - lastY;
//根据事件的偏移来移动视图
img.layout(img.getLeft() + dx, img.getTop() + dy, img.getRight() + dx, img.getBottom() + dy);
lastX = eventX;
lastY = eventY;
//更新记录
break;
}
return true; //所有的MotionEvent交给img处理
}
});
}
}
Android实现控件拖动的小Demo
最新推荐文章于 2024-04-17 09:33:31 发布