如何在android中的画布上绘制圆形,图像,线条等单独处理拖动,缩放功能?

时间:2015-05-28 06:57:41

标签: android android-canvas

我使用画布在其上绘制内容,但从未处理在画布上绘制的每个内容的拖放功能。有没有人处理过这种情况?

2 个答案:

答案 0 :(得分:0)

这可能不是最有效的方式,但我会从以下方法开始:

  1. 启动形状绘图时,创建一个新的SurfaceView并在此处绘制
  2. 绘制时,跟踪形状的最小和最大边界
  3. 结束形状绘制时,将视图剪切到边界
  4. 将适当的侦听器附加到视图以进行拖动,缩放等。
  5. 如果SurfaceView背景是透明的,则视图应该可以相互拖动。您可能会遇到与您抓取哪个视图并在重叠时拖动的冲突。

答案 1 :(得分:0)

对于触摸,您只需找到一种方法来决定触摸屏幕时选择的元素。为此,您可以获取对象的边界并决定您触摸的对象。

然后,当您检测到触摸位置移动时,如果初始触摸选择了一个对象,则应该按照触摸移动的像素偏移量来更改对象的位置,以“拖动”画布上的对象。

我自己从未实现过缩放,但我确信它的开始是相同的 - 必须检测您选择的对象。然后你可以在画布上使用捏缩比例监听器。

喂!我找到了一些Google docs,了解如何完全按照自己的意愿行事!