android: viewpage是一个经常要用到的组件,但android系统本身为我们提供的:viewpage是没有任何效果的,只能是一页一页的滑动,这样会让人感觉很死板,在看一些知名大公司的应用时,看到了他们的:viewpage在滑动到最开始或者最后的时候是有一个弹性效果的,使用起来感觉非常的好,于是乎就是百度搜了一下,在中StackOverflow看到一篇文章就是讲如何实现这个效果的。
先看下效果图:滑动到最后一页时仍然可以拉动……
代码如下:
包com.example.myviewpager; 进口android.content.Context; 进口android.content.res.TypedArray; 进口android.graphics.Camera; 进口android.support.v4.view.MotionEventCompat; 进口android.support.v4.view.ViewConfigurationCompat; 进口android.support.v4.view.ViewPager; 进口android.util.AttributeSet; 进口android.view.MotionEvent; 进口android.view.View; 进口android.view.ViewConfiguration; 进口android.view.animation.DecelerateInterpolator; 进口android.view.animation.Transformation; 进口com.nineoldandroids.animation.Animator; 进口com.nineoldandroids.animation.Animator.AnimatorListener; 进口com.nineoldandroids.animation.ObjectAnimator; 公共类BounceBackViewPager: viewpage延伸 {/* * *最大z距离翻译子视图 */最终的静态int DEFAULT_OVERSCROLL_TRANSLATION=500;/* * *时间overscroll动画女士 */最后的私有静态int DEFAULT_OVERSCROLL_ANIMATION_DURATION=400; @SuppressWarnings(未使用) 私人最终的静态字符串DEBUG_TAG=ViewPager.class.getSimpleName (); 私人最终静态int INVALID_POINTER_ID=1;/* * * * @author renard延长彼得亚雷泽瓦茨基 * */私有类OverscrollEffect { 私人mOverscroll浮动; 私人动画师mAnimator;/* * * @param deltaDistance [0 . .1)0→没有overscroll,充满overscroll 1祝辞 */公共空间setPull(最终deltaDistance浮动) { mOverscroll=deltaDistance; invalidateVisibleChilds (mLastPosition); }/* * *当手指被释放。开始动画回到默认位置 */私人空间> & lt; declare-styleable name=" BounceBackViewPager比; & lt; attr=name=" overscroll_translation_bounce "格式"维度"/比; & lt; !——动画时间当用户释放在滚动。默认是400——比女士; & lt; attr name==罢?皁verscroll_animation_duration_bounce”格式比; & lt;/declare-styleable> >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
android自定义:viewpage水平滑动弹性效果