Android自定义ScrollView实现放大回弹效果实例代码

  

1,刚刚在别人开源的项目中看到了一个挺不错的用户体验,效果图如下:

  

 Android自定义ScrollView实现放大回弹效果实例代码

  

2,那下面我们就来实现一下,首先看一下布的局,由于一般只是我们包含头像的那部分方法,所以这里我们要把布局分成两部分,对应的布局文件效果图如下:

  

 Android自定义ScrollView实现放大回弹效果实例代码

  

 Android自定义ScrollView实现放大回弹效果实例代码

  

3,自定义ScrollView

  

第一步:创建一个类,继承自滚动视图,重写相应的构造函数

        公开课ZoomInScrollView延伸ScrollView {      公共ZoomInScrollView(上下文语境){      这(上下文,null);      }      公共ZoomInScrollView(上下文语境,AttributeSet attrs) {      这(上下文、attrs 0);      }      公共ZoomInScrollView(上下文语境、AttributeSet attrs int defStyleAttr) {      超级(上下文、attrs defStyleAttr);      }      }   之前      

第二步:重写OnFinishInflate()方法,并记录第一个子视图,即我们的head_fragment

        @Override      保护空白>   @Override      公共布尔>/* *      * *放大视图      */私人空间setZoom(漂浮){      浮动scaleTimes=(浮动)((mHeaderWidth + s)/(mHeaderWidth * 1.0));//如超过最大放大倍数,直接返回      如果(scaleTimes比;mScaleTimes)返回;            ViewGroup。LayoutParams LayoutParams=mHeaderView.getLayoutParams ();      layoutParams。宽度=(int) (mHeaderWidth + s);      layoutParams。身高=(int) (mHeaderHeight * ((mHeaderWidth + s)/mHeaderWidth));//设置控件水平居中      ((MarginLayoutParams) layoutParams) .setMargins (- (layoutParams。宽度- mHeaderWidth)/2, 0, 0, 0);      mHeaderView.setLayoutParams (layoutParams);      }/* *      *回弹      */私人空间replyView () {      最后浮动距离=mHeaderView.getMeasuredWidth () - mHeaderWidth;//设置动画      ValueAnimator动画=ObjectAnimator。ofFloat(距离,0.0 f) .setDuration(长)* mReplyRatio)(距离);      动画。addUpdateListener(新ValueAnimator.AnimatorUpdateListener () {      @Override      公共空间alt=" Android自定义ScrollView实现放大回弹效果实例代码">

  

演示下载:ZoomInScrollView_jb51。rar
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android自定义ScrollView实现放大回弹效果实例代码