package com.bell.floatlayoutdemo;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.ImageView;
/**
* @Info
* @Auth Bello
* @Time 18/1/9 下午10:30
* @Ver
*/
@SuppressLint("AppCompatCustomView")
public class FloatView extends ImageView {
public FloatView(Context context) {
super(context);
}
public FloatView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public FloatView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
private float downX;
private float downY;
private long downTime;
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
if (this.isEnabled()) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downX = event.getX();
downY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
final float xDistance = event.getX() - downX;
final float yDistance = event.getY() - downY;
if (xDistance != 0 && yDistance != 0) {
int l = (int) (getLeft() + xDistance);
int r = (int) (getRight() + xDistance);
int t = (int) (getTop() + yDistance);
int b = (int) (getBottom() + yDistance);
this.layout(l, t, r, b);
}
break;
case MotionEvent.ACTION_UP:
Log.i("view", "rect=> " + getX() + ", " + getY());
setPressed(false);
break;
case MotionEvent.ACTION_CANCEL:
setPressed(false);
break;
}
return true;
}
return false;
}
}