點擊縮略圖進入全屏查看頁,支持雙指捏合縮放、單指拖動、雙擊放大/還原、邊界彈性回彈,體驗流暢無卡頓。
業界成熟方案是自定義 View 或 ImageView,結合 Matrix 矩陣變換和 ScaleGestureDetector 手勢檢測。推薦參考開源庫或成熟博客教程:
matrix.postScale()、matrix.postTranslate() 累積變換,最終 canvas.drawBitmap(bitmap, matrix, paint) 繪製。ScaleGestureDetector 處理雙指縮放;GestureDetector 處理雙擊、滑動、長按。Scroller 或 ValueAnimator)。Glide/Picasso 加載適當尺寸圖片,避免 OOM;退出頁面及時 bitmap.recycle()(舊版本)或釋放引用。將自定義圖片查看 View 封裝為 PagerAdapter 的頁面,注意在 onPageChanged 時重置前一頁的縮放狀態,避免切換時殘留變換。