我有一个包含可以放大和滚动的位图的图像视图。我使用了 setImageBitmap() 方法而不是在画布上设置图像。imageview 充当用户可以浏览的地图。现在,我的应用程序应该允许用户使用图钉在用户在图像视图上选择的点上标记兴趣点,就像在谷歌地图中所做的那样。我已经能够使用 OnTouch() 方法的修改实现来选择原始位图上的哪个点来工作,所以我知道标记必须放置在哪里。我想在这个位置设置一个标记并将一个字符串传递到数据库中以存储有关该位置的信息,以便在点击标记时,此信息会显示在气泡/吐司通知中。
截至目前,我可以滚动图像,感知图像视图上的 longTouch 事件,保存点击点,移动到新活动以收集信息以添加到数据库中。我似乎找不到在原始图像视图上设置标记的方法。另外,我猜我必须在此处使用 ArrayList 实现来获取具有单个 ID 的标记,这些 ID 可能与数据库字段中的 ID 相关,但我不明白如何实现它。
我在互联网上寻找解决方案或想法,在发帖之前我已经尝试了很多东西,但似乎没有任何效果。使用画布的绘制函数不允许 onTap 函数显示信息通知。绘制的位图在缩放时也会失去比例和质量。我尝试制作一个扩展 RelativeLayout 的自定义类,以在我的 imageview 上充当一个不可见的图层,但我不知道如何将标记放置在确切的位置并使自定义 RelativeLayout 更容易。我尝试放置一个与我的位图相同尺寸的虚假透明画布,以使缩放工作并允许我将标记放置在绝对位置,但它不起作用。另外,在自定义 RelativeLayout 类上使用 onTouch 事件意味着我不能在较低的 imageview 类上使用 onTouch 事件。
我似乎无法想出任何可以帮助我实现我想要的机制的解决方案,所以我愿意接受任何可以抛给我的想法。我很感激一些帮助。