我有一個自定義視圖,我加載位圖圖像。然後我做一些操作,如放大,縮小,旋轉,拖動和改變位置等。在完成這些操作後,我想用手指在位圖上繪製。我爲此使用canvas.drawPath(mPath, mPaint)
。如果我在屏幕上加載圖像並開始繪製,它完美的工作,但如果我改變圖像的位置或旋轉它或放大或縮小;我的路徑被繪製在不同於我所觸及的位置。我的問題是什麼可能是這個問題的原因,我該如何解決。如何在重新定位自定義視圖中的圖像並重新縮放圖像後在位圖圖像上使用路徑?
0
A
回答
0
我的問題解決了由this question答案拖動圖像和重新定位和縮放上下。
我已經把下面的代碼放在了onTouchEvent方法中。
float x = event.getX()/drawImage.getScaleX() - rect.left/drawImage.getScaleX();
float y = (event.getY())/drawImage.getScaleY() - rect.top/drawImage.getScaleY();
float p = drawImage.getCenterX()/drawImage.getScaleX() - rect.left/drawImage.getScaleX();
float q = drawImage.getCenterY()/drawImage.getScaleY() - rect.top/drawImage.getScaleY();
float x1 = (float) ((x - p) * Math.cos(drawImage.getAngle()) + (y - q) * Math.sin(drawImage.getAngle()) + p);
float y1 = (float) ((y - q) * Math.cos(drawImage.getAngle()) - (x - p) * Math.sin(drawImage.getAngle()) + q);
這裏drawImage是我自定義的drawable。 x1,y1是我正在搜索的實際座標。
0
在更改所顯示的圖像之前,請保存畫布的位置。 之後,恢復原來的位置。 事情是這樣的:
public void onDraw(Canvas c) {
c.save();
//Do your "image manipulation" logic
c.restore();
c.drawPath(mPath, mPaint);
}
相關問題
- 1. 重新定位wxPython的位圖圖像
- 2. 在自定義圖像視圖中縮放圖像
- 3. 在自定義視圖列表視圖項中縮放位圖圖像
- 4. 應用clipTo在fabric.js圖像路徑不正確重新定位圖像
- 5. 如何使圖像元素與窗口縮放重新定位
- 6. 如何重新定位放置在圖像上的div
- 7. 如何重新縮放位圖圖像大小?
- 8. 重新縮放圖像
- 9. 使用效果(「縮放」):保持圖像到位並不會重新定位
- 10. 如何用CSS重新定位絕對定位的圖像?
- 11. Rails上傳圖像並像facebook一樣重新定位
- 12. 將圖像定位在圖像上
- 13. 從現有圖像創建新位圖時不縮放圖像
- 14. Android縮放位圖圖像
- 15. 圖片像素重新定位
- 16. 重新定位加載圖像
- 17. 重新定位圖像 - iOS設備
- 18. 在固定寬度的圖像視圖中縮放圖像
- 19. 使用Javascript重新縮放圖像
- 20. 在ActionScript中縮放後位圖圖像的像素值?
- 21. 重新縮放圖像在J2ME
- 22. 上傳圖片,重新定位,保存圖像?
- 23. 將矩陣圖像定位在圖像視圖的中心
- 24. 使用自定義圖像縮放處置圖像查看
- 25. 定位圖像右上角的圖像
- 26. iOs - 圖像縮放和放大圖像定位
- 27. 如何在圖像視圖上放置自定義按鈕>
- 28. 如何獲取圖像視圖內圖像的圖像路徑?
- 29. .htaccess 301將圖像從舊圖像重定向到新圖像
- 30. 重新縮放位圖的縮放視圖
放置您的一些代碼。因此它有助於理解 –
可能使用FrameLayout並在縮放的圖像視圖的頂部具有繪圖視圖,因此繪圖不會被縮放比例扭曲。 – eduyayo