【问题标题】:How to place pin mark image over an image in android?如何在android中的图像上放置pin mark图像?
【发布时间】:2015-05-14 20:54:49
【问题描述】:

我是 Android 新手。我正在开发一个项目,我将在其中获取 Radio 信号值(我可以从 API 获取值)。我有一个平面图。平面图有厨房、大厅、卧室部分。如果我点击厨房部分,我需要在该部分放置一个带有无线电信号值的 Pin Image。单击“保存”后,我需要锁定该特定部分中的图像(带有值)。同样,我可以根据需要放置许多 Pin 图。

请给我一些相关的链接或示例代码来开发这个。我已附上图片供您参考。任何帮助将非常感激。

【问题讨论】:

  • 从 API 获取值后,针对特定数据集的布尔值,在“isPinned”中使用它,以便您知道何时显示弹出窗口。为了在视图上显示 pin,一个好主意是创建布局,例如 textview 和 pin 覆盖,这样您只需要管理显示和隐藏 pin 图像。

标签: java android canvas bitmap drawable


【解决方案1】:

一种方法是使用画布。

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.map);
    canvas.drawBitmap(map, xPositionForMap, yPositionForMap, null);

    Bitmap marker = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
    canvas.drawBitmap(marker, xPositionFor1stMarker, yPositionFor1stMarker, null);
    canvas.drawBitmap(marker, xPositionFor2ndMarker, yPositionFor2ndMarker, null);
}

在 onDraw 中稍后绘制的内容出现在之前绘制的内容之上。可能 BitmapFactory.decodeResource 应该在 create/init mat hod 中,因此不会在每次调用 onDraw 时都调用它们。请参阅http://developer.android.com/training/custom-views/custom-drawing.html 了解更多信息。

对于单击图钉,您将捕获对包含画布的布局的点击,并有条件地添加额外的可绘制对象和文本。

另一种方法是使用RelativeLayout并放置ImageView,它的工作方式类似。

【讨论】:

  • 兄弟你能从 github 或任何东西发送任何示例应用程序源代码吗?
  • 这是来自 Romain Guy 的一个项目,它演示了您将拥有的那种应用程序结构。这很复杂,但可能会让您入门。该文件显示了一个带有 onDraw 方法的视图:github.com/romainguy/road-trip/blob/master/application/src/main/…
  • 非常感谢我尝试然后通知你兄弟。上帝保佑
  • 兄弟我在RelativeLayout上成功添加了动态pin imageView。现在我想用ImageView保存布局。可以吗?哪一个是最好的共享偏好或存储 sqlite。我想像画廊一样存储所有布局(图像)。当我从我的画廊中单击布局(图像)时,图像会以图钉图像打开。我对这个概念感到困扰请帮助我兄弟..
【解决方案2】:

看看这个库,可能对你有帮助ImageLayout

【讨论】:

  • 感谢您的回复朋友,您有存储布局的想法吗?请帮我用针标记图像存储布局。
猜你喜欢
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 2019-06-27
  • 2018-12-23
  • 2011-08-20
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多