首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Android ImageView 多點觸控縮放與拖拽實現方案

     編輯:Java 相關知識

提供兩種實現 ImageView 手勢縮放拖拽的方案:

方案一:多點觸控監聽器 (Matrix 矩陣變換)

imageView.setScaleType(ScaleType.MATRIX);
imageView.setOnTouchListener(new MultiTouchListener());

核心邏輯:ACTION_DOWN 記錄起始點進入拖拽模式,ACTION_POINTER_DOWN 計算雙指距離進入縮放模式,ACTION_MOVE 根據模式調用 matrix.postTranslate 或 postScale 更新矩陣,最後 setImageMatrix 刷新顯示。需處理邊界限制防止圖片移出可視區。

方案二:自定義 TouchImageView (繼承 ImageView)

封裝 ScaleGestureDetector 處理縮放手勢,onTouchEvent 處理拖拽,onMeasure 自適應居中。使用更簡單:

TouchImageView img = findViewById(R.id.img);
img.setImageResource(R.drawable.bigpic);
img.setMaxZoom(4f);

兩種方案均基于 Matrix 實現平移縮放,方案二封裝度更高,推薦生產環境使用。注意在 XML 中設置 android:scaleType="matrix"。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved