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

首頁 > 系統 > Android > 正文

Android ListView實現下拉頂部圖片變大效果

2019-12-12 01:25:28
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android ListView下拉頂部圖片變大的具體代碼,供大家參考,具體內容如下

在git上查看牛人的代碼,發現是反編譯別人的代碼,還沒加注釋,代碼也沒有完全編譯完整,所以這里我做的簡單的注釋,僅供學習。

變量說明

這里變量包含了:自定義返回動畫加速度、自定義動畫線程、頭部圖片view,最后的y坐標,做好的比例,做大的比例等。

private static final String TAG = "PullToZoomListView"; private static final int INVALID_VALUE = -1;//重置值 //自定義加速度動畫 private static final Interpolator sInterpolator = new Interpolator() {  public float getInterpolation(float interpolator) {   float f = interpolator - 1.0F;   return 1.0F + f * (f * (f * (f * f)));  } }; private int mActivePointerId = INVALID_VALUE;//當前手指的Id private FrameLayout mHeaderContainer;//頭部 private int mHeaderHeight;//頭部圖片的高度 private ImageView mHeaderImage;//頭部圖片 float mLastMotionY = INVALID_VALUE;//最后y坐標 float mLastScale = INVALID_VALUE;//最后的比例 float mMaxScale = INVALID_VALUE;//最大的比例 private OnScrollListener mOnScrollListener;//滑動監聽 private ScalingRunnalable mScalingRunnalable;//動畫線程 private int mScreenHeight;//屏幕高度 private ImageView mShadow;//陰影遮罩

自定義View初始化:設置了頭部的頭部和遮罩并且設置了監聽。

/**  * 初始化  * @param paramContext  */ private void init(Context paramContext) {  DisplayMetrics metrics = new DisplayMetrics();  ((Activity) paramContext).getWindowManager().getDefaultDisplay().getMetrics(metrics);  this.mScreenHeight = metrics.heightPixels;//屏幕高度賦值  this.mHeaderContainer = new FrameLayout(paramContext);//頭部  this.mHeaderImage = new ImageView(paramContext);//頭部圖片  int screenWidth = metrics.widthPixels;//屏幕寬度  //設置頭部View的樣式 設置屏幕寬度,最大樣式高度為屏幕高度的9/16  setHeaderViewSize(screenWidth, (int) (9.0F * (screenWidth / 16.0F)));  this.mShadow = new ImageView(paramContext);//遮罩  FrameLayout.LayoutParams layoutParams =    new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,      ViewGroup.LayoutParams.MATCH_PARENT);  layoutParams.gravity = Gravity.CENTER;  this.mShadow.setLayoutParams(layoutParams);//設置遮罩樣式  //頭部添加View  this.mHeaderContainer.addView(this.mHeaderImage);  this.mHeaderContainer.addView(this.mShadow);  //添加頭部  addHeaderView(this.mHeaderContainer);  //初始化返回動畫  this.mScalingRunnalable = new ScalingRunnalable();  //設置監聽  super.setOnScrollListener(this); }

開啟動畫:判斷當前的頭部布局底部的位置

主站蜘蛛池模板: 高清| 衡南县| 宁明县| 伊宁市| 屏东市| 蒙阴县| 固安县| 仁布县| 新河县| 滕州市| 东港市| 察雅县| 奎屯市| 施秉县| 遂平县| 南安市| 彩票| 万山特区| 怀来县| 九龙坡区| 高要市| 昔阳县| 聂荣县| 桦甸市| 大英县| 夏津县| 祁东县| 宁远县| 斗六市| 海门市| 喜德县| 会泽县| 都匀市| 长顺县| 淅川县| 巴林左旗| SHOW| 聊城市| 彭山县| 礼泉县| 靖宇县|