您的位置:首页 > 其它

管教管教那些不听话的view

2016-02-23 19:28 260 查看
废话不多说,先上效果图。



呃 ,不好意思 不是这张,是这个。



就是受不了新建项目完,这货就猥琐的存在于右下角的那个旮沓里。叫它往西它不动,叫它往东它也不东。想起我这暴脾气,上去就是两巴掌,不给他点颜色看看,还真以为自己了不起了。
这里也教教大家怎么管教那些个不听话的。很简单,打他几下就搞定了。让他干啥他就老老实实的干啥。
方法很简单。setOnTouchListener 就好了。

private int x0, y0, x1, y1;


// 1.

fab.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x0 = (int) event.getX();
y0 = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
x1 = (int) event.getX() - x0;
y1 = (int) event.getY() - y0;
fab.layout(fab.getLeft() + x1, fab.getTop() + y1, x1 + fab.getRight(), y1 + fab.getBottom());
//下面两句和上面一句式相同的道理。
//                        fab.offsetLeftAndRight(x1);
//                        fab.offsetTopAndBottom(y1);
break;
case MotionEvent.ACTION_UP:
break;
}

return true;
}
});

// 2. 这个要依赖nineoldandroids

scroll.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
x1 = (int) event.getRawX();
y1 = (int) event.getRawY();

switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
int x = x1 - x2;
int y = y1 - y2;
Log.e("Move", x + "," + y);
int tx = (int) (ViewHelper.getTranslationX(scroll) + x);
int ty = (int) (ViewHelper.getTranslationY(scroll) + y);
ViewHelper.setTranslationX(scroll, tx);
ViewHelper.setTranslationY(scroll, ty);
break;
}

x2 = x1;
y2 = y1;
return true;
}
});


项目地址:https://github.com/103style/MotionEvent
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: