1.前言
在开发中,会有需求实现控件在屏幕随意拖动,这就需要自定义View,然后在OnTouchEvent事件中,处理MotionEvent.ACTION_MOVE事件,然后通过坐标点传值给onlayout方法,来实现控件的任意拖动,具体代码如下:
import android.content.Context;
import android.util.AttributeSet;
import android.view.Display;
import android.view.MotionEvent;
import android.view.WindowManager;
import android.widget.LinearLayout;
public class DragLineLayout extends LinearLayout {
private int mWidth;
private int mHeight;
private int mScreenWidth;
private int mScreenHeight;
private Context mContext;
private onLocationListener mLocationListener;/*listen to the Rect */
//是否拖动
private boolean isDrag = false;
public boolean isDrag() {
return isDrag;
}
public DragView(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mWidth = getMeasuredWidth();
mHeight = getMeasuredHeight();