小编m4t*_*4tt的帖子

居中放大自定义视图 - 计算画布坐标

我正在开发我的第一个"真正的"Android应用程序,一个图形工作流编辑器.绘图是在一个自定义类中完成的,它是View的子类.当我的元素是矩形时,它们在画布上绘制.为了检测元素上的动作,我比较坐标并检查触摸位置上的元素.

为了实现缩放手势,我尝试了http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html

使用4参数canvas.scale(...)函数,居中缩放效果很好,但我无法使用mPosX和mPosY的偏移来计算画布坐标,以检测缩放后的触摸是否在元素上.

我尝试更改上面博客文章中的示例,将画布置于缩放手势的中心位置:

canvas.save();
canvas.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor, mScalePivotX, mScalePivotY);
//drawing ....
canvas.restore();
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于如何在不丢失参考偏移量来计算坐标的情况下做到的例子.有一个简单的解决方法吗?我尝试用手势中心和比例因子来计算偏移量,但是失败了:/

我已经看到使用ImageView的其他示例经常使用Matrix来转换图像.这可以通过自定义视图和画布完成吗?如果是,我如何获得x和y偏移来检查坐标?

此外,如果我的想法完全错误,我会很高兴看到一些关于如何正确完成的例子.

谢谢!;)

android view zoom

6
推荐指数
1
解决办法
4083
查看次数

标签 统计

android ×1

view ×1

zoom ×1