java - 如何在 android 中的图像上放置图钉标记图像?

标签 java android canvas bitmap drawable

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

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

enter image description here

最佳答案

一种方法是使用 Canvas 。

@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 应该在创建/初始化矩阵中,这样就不会在每次调用 onDraw 时调用它们。参见 http://developer.android.com/training/custom-views/custom-drawing.html想要查询更多的信息。

对于单击图钉,您会在包含 Canvas 的布局上点击并有条件地添加额外的可绘制对象和文本。

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

关于java - 如何在 android 中的图像上放置图钉标记图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29014212/

相关文章:

java - JMS MessageDriven bean - 如何同步线程?

java - 为什么有些 double 除法在java操作中是正确的?

android - 更改选项卡中的线条颜色 - ActionBarSherlock

javascript - 多个图像未加载到 Canvas 上

javascript - SVG 到形状 (EaselJS)

Java JUnit assertEquals 与 Long

java.lang.ClassNotFoundException : org. hibernate .HibernateException

Android Activity 和服务通信

android - 克隆项目时找不到错误 : keystore. 属性

javascript - 如何在 HTML5 的 Canvas 中复制形状?