我想實現多點觸摸放大和縮小功能,我的申請。我的應用程序是查看圖像的幻燈片。我試圖執行從鏈路多點觸控縮放功能如下http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-gesture/1847,它實際上是一個很好的人,但我需要控制在放大和縮小。即我想實現變焦的最大和最小限制。任何人都可以幫助我解決這個問題。同時也要提前感謝解決這個問題。Android的多點觸摸縮放
回答
在我的搜索和編碼變焦ImageView的我遇到了一個小工具,精確地圖庫應用程序縮放功能,其易於使用的複製。雖然我設計我自己的縮放Iamgeview但後來我發現它不是。一個好的東西重新發明下面的輪子是鏈接
禮貌:亞歷山德羅Crugnola
http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/
當然,你需要改變這一部分:
else if (mode == ZOOM) {
float newDist = spacing(event);
Log.d(TAG, "newDist=" + newDist);
if (newDist > 10f) {
matrix.set(savedMatrix);
float scale = newDist/oldDist;
matrix.postScale(scale, scale, mid.x, mid.y);
}
}
到
else if (mode == ZOOM) {
float newDist = spacing(event);
Log.d(TAG, "newDist=" + newDist);
if (newDist > 10f) {
matrix.set(savedMatrix);
float scale = newDist/oldDist;
// check scale is not too big or two small
float newScale = scale*mCurrentScale;
if (newScale > 10) {
return false;
} else if (newScale < 0.1) {
return false;
}
mCurrentScale = newScale;
matrix.postScale(scale, scale, mid.x, mid.y);
}
}
,並添加變量mCurrentScale
你的活動要記住目前的規模,像這樣:
public class Touch extends Activity implements OnTouchListener {
// These matrices will be used to move and zoom image
Matrix matrix = new Matrix();
Matrix savedMatrix = new Matrix();
// this is the new variable added
float mCurrentScale = 1.0f;
...
另外,我建議你盧克和記黃埔的MultiTouchController,它可以在2.1,並支持複雜的手勢像拖動縮放。 – 2011-05-12 12:01:30
謝謝你的回覆。這隻適用於第一次,當我們執行一些大規模的變化時,我們失去了對圖像的控制,它變得太小,然後變得太難以放大。感謝您查看和回覆這篇文章。 – Basil 2011-05-13 13:59:16
你是什麼意思,它只是第一次工作? – 2011-05-13 14:01:18
這解決了問題的我。在圖像放大/縮小到極限之後,它會停止進一步。它也很流暢,沒有滯後。 0.7和2.0是最小和最大縮放級別。
....
} else if (mode == ZOOM) {
float[] f = new float[9];
float newDist = spacing(event);
if (newDist > 10f) {
matrix.set(savedMatrix);
float tScale = newDist/dist;
matrix.postScale(tScale, tScale, mid.x, mid.y);
}
matrix.getValues(f);
float scaleX = f[Matrix.MSCALE_X];
float scaleY = f[Matrix.MSCALE_Y];
if(scaleX <= 0.7f)
matrix.postScale((0.7f)/scaleX, (0.7f)/scaleY, mid.x, mid.y);
else if(scaleX >= 2.5f)
matrix.postScale((2.5f)/scaleX, (2.5f)/scaleY, mid.x, mid.y);
}
....
- 1. android多點觸摸圖像縮放?
- 2. 旋轉和縮放在Android中使用多點觸摸
- 3. 多點觸摸android系統
- 4. iPhone多點觸摸移動,縮放和旋轉,如何防止縮放?
- 5. 放大觸摸點
- 6. 在Android的多點觸摸事件
- 7. 觸摸開始與多點觸摸讓
- 8. Android平滑多點觸摸繪圖
- 9. 在被觸摸的區域縮放/縮放imageview
- 10. soundpool中的多點觸摸
- 11. Android上的捏縮放/多點觸控功能GridView
- 12. 在android中定義縮放圖像上的可觸摸區域
- 13. 在UIView下縮放UIScrollView,接收觸摸
- 14. Android相機觸摸焦點
- 15. 指縮放功能,多點觸控Android中
- 16. 如何在Android中使用多點觸控來縮放圖像?
- 17. 多點觸摸檢測
- 18. 多點觸摸事件
- 19. iPhone多點觸摸座標
- 20. C#WPF WebBrowser多點觸摸
- 21. 在單點觸摸越來越多點觸摸事件
- 22. 谷歌地圖api v3支持多點觸摸進行縮放嗎?
- 23. 如何應用長時間觸摸和捏縮放android?
- 24. Android:如何正確縮放鼠標/觸摸輸入?
- 25. 實現多點觸摸......需要存儲的第二觸摸
- 26. iOS上的MonoTouch中的多點觸摸
- 27. Android設備如果不支持多點觸摸,有什麼辦法可以檢測多點觸摸嗎?
- 28. 在android中的觸摸焦點識別
- 29. onTouch給怪異的觸摸點Android
- 30. 的Android轉向點擊進入觸摸
感謝您的支持和卓越的工作。再次感謝TOXIC .. – Basil 2011-05-13 14:04:36