我遇到了以下问题:目前,我在 SurfaceView 中绘制了一张图片。此外,允许用户在此图片上绘图。因此,绘制“图形”被作为路径对象处理。此外,用户可以平移和缩放图像。缩放和平移的处理是通过使用矩阵来完成的。图片以及每个路径对象都有自己的矩阵。
因此,例如,如果用户启动了应用程序,则会显示一张图片。然后,用户可以在另一个之后添加一个路径对象,依此类推。我们为每个对象创建一个新矩阵。例如,如果用户放大,那么路径对象以及图片都会被放大。
现在我的目标是,如果在图片放大或缩小时添加路径对象,则路径对象应添加到触摸位置,但应缩放到其他已绘制对象的比例。换句话说,更简单的话:如果我添加一个路径对象,它应该与已经存在的对象具有相同的比例,但它应该出现在它的新位置:
到目前为止,我尝试了不同的方法来解决问题,但没有任何效果:
首先,我用一个单一的矩阵缩放了画布,而不是单独缩放每个路径对象。但是随后,在放大图片时,添加的路径对象出现在错误的位置。
接下来,我尝试获取当前比例,然后在创建路径对象时对其进行缩放。这也不起作用。对于非方法 preScale、postScale、setScale ... 整个路径是错误的,或者它再次出现在错误的位置。
有谁知道解决方案?