- private void getVidGetById(){
- //滑动的监听事件
- btnClick.setOnTouchListener(new OnTouchListener(){
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- int ea=event.getAction();
- switch(ea){
- case MotionEvent.ACTION_DOWN:
- //执行此操作 初始化 X,Y
- lastX = (int) event.getRawX();
- lastY = (int) event.getRawY();
- break;
- case MotionEvent.ACTION_MOVE:
- //getRawX()和getRawY()获得的是相对屏幕的位置
- int pawX = (int)event.getRawX();
- int pawY = (int)event.getRawY();
- if(pawX != lastX || pawY != lastY){
- int dx = pawX - lastX;
- int dy = pawY - lastY;
- //得到最终的 上下 左右的坐标
- int left = v.getLeft() + dx;
- int top = v.getTop() + dy;
- int right = v.getRight() + dx;
- int bottom = v.getBottom() + dy;
- //不能超过左边
- if(left < INIT_NUM){
- left = INIT_NUM;
- right = left + v.getWidth();
- }
- //不能超过右边
- if(right > screenWidth){
- right = screenWidth;
- left = right - v.getWidth();
- }
- //限制 最上的位置
- if(top < INIT_NUM){
- top = INIT_NUM;
- bottom = top + v.getHeight();
- }
- //限制最下的位置
- if(bottom > screenHeight){
- bottom = screenHeight;
- top = bottom - v.getHeight();
- }
- //写入控件的位置
- v.layout(left, top, right, bottom);
- //重新获取控件的位置
- lastX = (int) event.getRawX();
- lastY = (int) event.getRawY();
- falg = true;
- }else{
- falg = false;
- }
- }
- return falg;
- }});
- //点击的事件
- btnClick.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(MainActivity.this, "你点着我了",Toast.LENGTH_SHORT).show();
- }
- });
- }
- //该片段来自于http://www.codesnippet.cn/detail/130620149769.html
来源: http://www.codesnippet.cn/detail/130620149769.html