ios中对可以滚动的视图都在系统层面上实现了触碰到边缘的阻尼回弹效果,用户一看便知自己的操作已经到了边界。android中也有类似的方案,不过当到达边界的时候不是用阻尼的方式,而是逐渐显示一个渐变颜色。ios的那种体验无疑会友好很多,也许是当初ios吵着要把这个设计申请专利的缘故吧,android不得不放弃橡皮筋效果,至少在系统层面。
但这不意味着安卓中无法实现和ios一样的效果,这里介绍两种实现的方法。
第一种简单,但是效果不如意,而且必须要在api level大于9的情况下使用:
比如我是要给listview加上阻尼回弹效果,那么只需如下重写listview:package com.thinkfeed.bouncelistview;
import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.widget.ListView;
public class BounceListView extends ListView{
private static final int MAX_Y_OVERSCROLL_DISTANCE = 200;
private static final float SCROLL_RATIO = 0.5f;// 阻尼系数
private Context mContext;
private int mMaxYOverscrollDistance;
public BounceListView(Context context){
super(contex