PhotoView監聽座標校準

2021-07-24 21:02:32 字數 513 閱讀 5227

photoviewattacher 裡面的ontouch方法裡面監聽x,y

將監聽的x,y繪製到view裡面

由於放大之後的view監聽的x,y不是真實的x,y,

需要專門對x,y 做校準處理

邏輯:放大之後的view監聽到的x,y座標其實是縮放,移動之後的view,

需要先計算放大之後的真實座標,先進行移位,原來的座標 - 移動的座標,

再去除以縮放的倍數,此時計算出來的座標就是真實的座標

在自定義的view 裡面ondraw 裡面繪製影象

繪製的時候設定之前移位的matrix

此時解決問題,縮放之後成功繪製出影象

canvas.concat(this.getsupportmatrix());

public class matrixutils 

public static float

formatmatrixy(float clicky,matrix mmaxrix)

}

PhotoView原始碼解析 Part I

photoview庫的核心類是photoviewattacher,而他由幾個核心構建構成。我們乙個個拆開來看。從監聽事件這些驅動部件來入手容易一些。對於 的解釋我直接放在注釋裡。override public boolean ontouch view view,motionevent event 取...

微信可拖拽透明返回 photoview

githubwing dragphotoview 更多 作者 提 bug 標籤 photoview 修改你的build.gradle檔案 root project allprojects module project dependencies 使用法放和普通的 imageview 一毛一樣 所有 i...

PhotoView原始碼初始化BUG修復

photoview 初始化完成之後,單指不停的滑動,會發現出現放大 此bug在首次單指滑動的情況下出現,僅僅修改首次單指滑動監聽 現在專案已經不在考慮api 14,所以僅僅改動以下監聽 在監聽之前,判斷是否是雙指的,如果是雙指,則新增ontouch監聽 如果是單指操作,則不監聽操作 首次單指不做縮放...