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