自定义ScrollView实现阻尼效果(类似于QQ下拉一段距离)

public class DampingScrollView extends ScrollView{
    private View activityView;  //activity传递进来的View用来控制其高度(可以是ImageViewTextView 等)
    private Scroller mScroller; //
    /** 回弹时所用的时间 */
    private static final int DURATION = 100;
    /** 最大Y坐标 其值一般设定为Scroller对应控件的高度 */
    private static final int MAX_DY = 100;
    TouchTool tool;
    int left, top;
    float startX, startY, currentX, currentY;
    int imageViewH;
    int rootW, rootH;
    boolean scrollerType;

    public DampingScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mScroller=new Scroller(context);
    }

    public DampingScrollView(Context context) {
        super(context);
        mScroller=new Scroller(context);
    }



    public void setActivityView(View activityView) {
 //设置要改变高度的视图
        this.activityView = activityView;
    }


    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int action = event.getAction();
        if (!mScroller.isFinished()) {
            return super.onTouchEvent(event);
        }
        currentX = event.getX();
        currentY = event.getY();
        switch (action) {
            case MotionEvent.ACTION_DOWN:// 变量赋初始值
                left = activityView.getLeft();
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值