首页 > 解决方案 > 如何绘制箭头而不是拖动阴影?

问题描述

我需要用户在两个视图之间拖动一个箭头,但我可以在网上找到的所有信息都是制作一个拖动阴影。

这是我需要的结果的一个例子。

https://imgur.com/pfQxtSK

提前致谢。

标签: androiddrag-and-drop

解决方案


您想要的要求您使用 onTouchEvent(MotionEvent) 回调观察父 ViewGroup 或自定义视图(从图像中绘制浅蓝色网格的任何内容)中的触摸事件。接下来,您想使用 MotionEvent 的 x 和 y 坐标以及一些基本的三角函数来确定拖动的方向。这将允许您确定拖动的角度,从而动态调整箭头的角度(旋转),使其准确地跟踪手指。接下来使用从 MotionEvent 获得的相同 x 和 y 坐标来确定在画布上绘制箭头的位置。如果箭头是作为子视图添加的另一个视图,您可以设置该视图的 x 和 y 坐标或使用 View 类提供的方法转换视图(您可能需要使用偏移量,因此视图不会 t 在几次拖动/触摸后被绘制到屏幕外)。如果箭头是我们可绘制的位图,则需要在视图的 onDraw(Canvas) 方法中调整绘制坐标。


推荐阅读