/**
* Created by liguoxian on 2017/12/6.
*/
public class TextButon extends AppCompatTextView {
private final static String TAG = "TextButon";
private int mScaledTouchSlop;//屏幕最小滑动距离
//记录上次滑动的坐标
private int mLastX = 0;
private int mLastY = 0;
public TextButon(Context context) {
this(context, null);
}
public TextButon(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public TextButon(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
mScaledTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
Log.v(TAG, "屏幕最小滑动距离:" + mScaledTouchSlop);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getRawX();
int y = (int) event.getRawY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
//获得这次滑动的距离
int deltaX=x-mLastX;
int deltaY=y-mLastY;
//设置控件拖动后的坐标
int translationX=(int) ViewHelper.getTranslationX(this)+deltaX;
int translationY=(int)ViewHelper.getTranslationY(this)+deltaY;
ViewHelper.setTranslationX(this,translationX);
ViewHelper.setTranslationY(this,translationY);
break;
}
mLastY=y;
mLastX=x;
return true;
}
}
Android:全屏幕拖动控件的实现
最新推荐文章于 2024-05-02 17:06:00 发布