public class Drag extends LinearLayout {    private ViewDragHelper mDraw;    private Point mPoint = new Point();    public Drag(Context context, AttributeSet attrs) {        super(context, attrs);        mDraw = ViewDragHelper.create(this, 1.0f, new ViewDragHelper.Callback() {            @Override            public boolean tryCaptureView(View child, int pointerId) {                return true;            }            @Override            public int clampViewPositionHorizontal(View child, int left, int dx) {                int boundaryLeft = getPaddingLeft();                int boundaryRight = getWidth() - child.getWidth() - getPaddingRight();                left = Math.min(Math.max(left, boundaryLeft), boundaryRight);                return left;            }            @Override            public int clampViewPositionVertical(View child, int top, int dy) {                Log.e("zxc", "top-------->" + top);                //垂直下拉弹性                if (top == 0) {                    top = 0;                }                if (top > 300) {                    top = 300;                }              //垂直上拉弹性                if (top < 0){                    if (top < -300){                        top = -300;                    }                }                return top;            }            //手指释放的时候回调            @Override            public void onViewReleased(View releasedChild, float xvel, float yvel) {                mDraw.settleCapturedViewAt(0,0);                invalidate();            }        });    }    @Override    public void computeScroll()    {        if(mDraw.continueSettling(true))        {            invalidate();        }    }    @Override    protected void onLayout(boolean changed, int l, int t, int r, int b) {        super.onLayout(changed, l, t, r, b);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        return mDraw.shouldInterceptTouchEvent(ev);    }    @Override    public boolean onTouchEvent(MotionEvent event) {        mDraw.processTouchEvent(event);        return true;    }}

更多相关文章

  1. android下拉菜单三级联动
  2. Android(安卓)Spinner
  3. Android开发布局系列: LinearLayout布局实现垂直水平居中
  4. Android界面布局详解
  5. Android(安卓)Studio开发基础之AutoCompleteTextView控件的使用
  6. [Android] TextView的垂直滚动效果
  7. Android(安卓)UI组件Spinner下拉列表详解
  8. Android:控件AutoCompleteTextView 自动提示
  9. Android(安卓)Adapter

随机推荐

  1. android视频播放简单实现示例(VideoView&M
  2. Android(安卓)Studio中获取SHA1或MD5的方
  3. Android(安卓)Scroller的用法详解并完成L
  4. Intellij IDEA开发第一个android应用教程
  5. Android中BaseFragment封装多状态视图显
  6. 公钥密码的三大数学问题
  7. android.view.WindowLeaked的解决办法 ha
  8. 安装Android(安卓)studio 遇到unable to
  9. Android(安卓)Studio V3.12环境下TV开发
  10. Android(安卓)UI 组件开源软件 共有47款