我想实现多点触摸放大和缩小功能,我的申请。我的应用程序是查看图像的幻灯片。我试图执行从链路多点触控缩放功能如下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