国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android ScrollView實現橫向和豎向拖動回彈效果

2019-12-12 00:30:43
字體:
來源:轉載
供稿:網友

原理

在android2.3版本中,View類中新增了一個方法:overScrollBy。通過覆蓋該方法,就可以達到阻尼回彈的效果。

示例1、豎向滾動 

public class ReboundScrollView extends ScrollView{  private static final int MAX_SCROLL = 200;  private static final float SCROLL_RATIO = 0.5f;// 阻尼系數    public ReboundScrollView(Context context)  {   super(context);  }   public ReboundScrollView(Context context, AttributeSet attrs)  {   super(context, attrs);  }   public ReboundScrollView(Context context, AttributeSet attrs, int defStyle)  {   super(context, attrs, defStyle);  }    @Override  protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)  {    int newDeltaY = deltaY;   int delta = (int) (deltaY * SCROLL_RATIO);   if((scrollY+deltaY)==0 || (scrollY-scrollRangeY+deltaY)==0){    newDeltaY = deltaY;  //回彈最后一次滾動,復位   }else{    newDeltaY = delta;  //增加阻尼效果   }   return super.overScrollBy(deltaX, newDeltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, MAX_SCROLL, isTouchEvent);   } } 

示例2、橫向滾動

public class ReboundHScrollView extends HorizontalScrollView{  private static final int MAX_SCROLL = 200;  private static final float SCROLL_RATIO = 0.5f;// 阻尼系數    public ReboundHScrollView(Context context)  {   super(context);  }   public ReboundHScrollView(Context context, AttributeSet attrs)  {   super(context, attrs);  }   public ReboundHScrollView(Context context, AttributeSet attrs, int defStyle)  {   super(context, attrs, defStyle);  }    @Override  protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)  {    int newDeltaX = deltaX;   int delta = (int) (deltaX * SCROLL_RATIO);   if((scrollX+deltaX)==0 || (scrollX-scrollRangeX+deltaX)==0){    newDeltaX = deltaX;  //回彈最后一次滾動,復位   }else{    newDeltaX = delta;  //增加阻尼效果   }   return super.overScrollBy(newDeltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, MAX_SCROLL, maxOverScrollY, isTouchEvent);   } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建平县| 格尔木市| 宝应县| 顺平县| 大埔县| 图木舒克市| 武宣县| 繁昌县| 东乡| 台南市| 垦利县| 罗定市| 麻阳| 刚察县| 迁安市| 屏东县| 巧家县| 全州县| 理塘县| 牙克石市| 建平县| 大理市| 鄂托克旗| 临澧县| 房山区| 广昌县| 修文县| 和政县| 乐昌市| 赫章县| 甘洛县| 辰溪县| 蒙自县| 泸定县| 东台市| 甘德县| 永昌县| 鄂托克前旗| 新和县| 泗阳县| 仪陇县|