我在圖像視圖控件中有圖像。由於圖像的x和y座標連續變化,用戶可以對該圖像執行平移和縮放。有沒有什麼方法可以找出圖像內部圖像控制的當前設置的x和y座標?任何有關它的代碼都會更有益。如何獲取圖像控件中位圖圖像的x和y座標?
5
A
回答
11
ImageView使用Matrix類來進行縮放(縮放)和平移(平移)。如果您可以獲得矩陣,那麼您可以檢索放大/平移視圖的(左側,頂部)座標。
代碼的可縮放的&可平移延伸的ImageView是在計算器的一個posts
在該職位可你會看到擴展的ImageView類有矩陣用於縮放/平移一個成員變量。
您可以使用以下代碼從矩陣中獲取縮放/平移的ImagevIew(實際上是位圖)的界限。
RectF r = new RectF();
matrix.mapRect(r);
Log.i(TAG, "Rect " + r.left + " " + r.top + " " + r.right + " " + r.bottom + " " + mOverAllScale + " ");
新添加的答案
要了解下面的代碼,你需要去通過這個link和理解。
翻譯
當用戶拖曳圖像時,屏幕座標(絕對)和位圖的座標不同步。 [您寫入位圖的任何內容都通過畫布顯示(在onDraw())]如果應用着色,用戶會看到它在位圖圖像上的不同區域上應用。要糾正這個問題,你需要做翻譯。該翻譯會將用戶輸入座標(屏幕座標)更改爲位圖座標(如用戶所期望的) 以下代碼段將幫助您進行翻譯。
讓用戶輸入座標爲(X,Y)的話,
RectF r = new RectF();
matrix.mapRect(r);
Log.i(TAG, "Rect " + r.left + " " + r.top + " " + r.right + " " + r.bottom + " " + mOverAllScale + " ");
float newX = x - r.left;
float newY = y - r.top;
你代替(X,Y)採用新的座標。
縮放(縮放)
當用戶捏輸入/輸出;位圖會縮小/放大。您必須注意原始位圖不會更改,縮放只能從顯示角度進行。 這又導致屏幕和位圖之間的同步丟失。屏幕上的着色應該反映在顯示的圖像中。 以下代碼片段可以幫助您進行縮放。
// mScalingFactor shall contain the scale/zoom factor
float scaledX = (event.getX() - r.left);
float scaledY = (event.getY() - r.top);
scaledX /= mScalingFactor;
scaledY /= mScalingFactor;
詞shash
相關問題
- 1. 獲取X Y座標w.r.t圖像
- 2. 如何從圖像輸入中獲取x和y座標?
- 3. 如何在Android中獲取(x,y)圖像的座標?
- 4. 如何在畫布中獲取圖像的x和y座標控制
- 5. 提取X,Y從圖像座標
- 6. 如何獲取顯示圖像的(x,y)座標?
- 7. 從圖像中獲取x和y座標
- 8. 獲取縮放圖像像素的X,Y座標 - KineticJs/HTML5 Canvas圖像
- 9. 獲取X和Y座標視圖
- 10. 如何在android中的imageview中獲取圖像的x和y座標?
- 11. 如何從圖像中獲取像素的x,y座標顏色?
- 12. 獲取旋轉圖像中點的新x,y座標
- 13. 使用X,Y座標與位圖圖像
- 14. 獲得縮放圖像後圖像作物的x和y座標
- 15. 從x,y座標寫入圖像
- 16. 如何在android onCreate上獲取圖像的x和y位置?
- 17. Android:獲取視圖的x,y座標
- 18. 獲取圖像佔位符的座標
- 19. 圖像比較,無法抓住像素的x和y座標
- 20. 從鼠標的緩衝圖像中獲取像素RGB X和Y的位置
- 21. 爪哇SWT:獲取原始x/y座標從縮放圖像
- 22. 如何在UIWebView中查找圖像的中心/ x,y座標
- 23. 從位圖圖像中將字節數組讀入座標X和Y?
- 24. 移動圖像,Y座標
- 25. 極座標位圖圖像
- 26. 在Libgdx中,如何獲取圖像旋轉時的x,y座標?
- 27. 在圖像[OpenCV/Python]中查找[x,y]旋轉座標位置
- 28. 如何獲取圖像的座標/ JLabel?
- 29. 我如何獲得JScrollPane中圖像的X和Y位置
- 30. 如何繪製HTML中圖像上項目的x,y座標
檢查出來此鏈接可能會有所幫助..... http://stackoverflow.com/questions/2447564/detect-touch-on-bitmap – Uttam