我正在开发我的第一个“真正的”Android应用程序,一个图形化的工作流编辑器。绘图是在自定义类中完成的,该类是View的子类。目前我的元素是矩形,在画布上绘制。为了检测元素上的操作,我比较坐标并检查触摸位置上的元素。
为了实现缩放手势,我尝试使用http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html。
使用四个参数的canvas.scale(...)函数可以很好地实现居中缩放,但我失去了使用mPosX和mPosY偏移量计算画布坐标以检测缩放后触摸是否在元素上的能力。
我尝试通过更改上述博客文章中的示例来使画布在缩放手势上居中:
为了实现缩放手势,我尝试使用http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html。
使用四个参数的canvas.scale(...)函数可以很好地实现居中缩放,但我失去了使用mPosX和mPosY偏移量计算画布坐标以检测缩放后触摸是否在元素上的能力。
我尝试通过更改上述博客文章中的示例来使画布在缩放手势上居中:
canvas.save();
canvas.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor, mScalePivotX, mScalePivotY);
//drawing ....
canvas.restore();
我没有找到任何关于如何在不丢失参考偏移量的情况下计算坐标的示例。有什么简单的解决方法吗?我尝试使用手势中心和缩放因子来计算偏移量,但失败了 :/
我已经看到其他使用ImageView的示例通常使用Matrix来转换图像。是否可以使用自定义View和Canvas来完成这个操作?如果可以,如何获取x和y偏移量以检查坐标?
此外,如果我的想法完全错误,我会很高兴看到一些关于正确实现的示例。
谢谢! ;)