【问题标题】:customized icon in osmdroid marker androidosmdroid marker android中的自定义图标
【发布时间】:2020-02-19 13:36:41
【问题描述】:

我在路线上有几个站点,我想用自定义图标显示它们。 使用默认 osmdroid 图标时,一切都像魅力一样。 但是当我将它们从drawable更改为图像时,标记会显示在路线上方(见图)。

            Marker marker = new Marker(mapView);
            marker.setPosition(new GeoPoint(info.getLat(), info.getLon()));
            marker.setAnchor(ANCHOR_CENTER, ANCHOR_BOTTOM);              
            marker.setTitle(info.getName());
            Drawable d = ResourcesCompat.getDrawable(getResources(), R.drawable.bus, null);
            Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
            Drawable dr = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(bitmap, (int) (48.0f * getResources().getDisplayMetrics().density), (int) (48.0f * getResources().getDisplayMetrics().density), true));
            marker.setIcon(dr);
            mapView.getOverlays().add(marker);
            mapView.invalidate();

我正在使用 osmbonuspack:6.6.0osmdroid-android:6.1.0Android 9 (API 28)。 我已经尝试按照OSMDroid - Default marker moving when zooming out on Android API 28setAnchor(ANCHOR_CENTER,ANCHOR_CENTER) 中的说明设置android:hardwareAccelerated="false",但它不起作用。 有没有其他解决办法?

【问题讨论】:

    标签: android osmdroid osmbonuspack


    【解决方案1】:

    这种方法的问题似乎与自定义图标分辨率有关,它会解析真实分辨率,但会缩小显示的图像。例如,作为修复/解决方法,您可以将自定义 png 标记从 drawable 文件夹移到 mipmap-xxxhdpi 中。 并且不要忘记设置锚点,例如:customMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);

    L.E.不要忘记使用高分辨率标记(我用 png 图像测试过)

    【讨论】:

      【解决方案2】:

      设置 CENTER,CENTER 为我工作。

      myMark.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER);
      

      默认放置(没有任何 setAnchor 命令)似乎等同于

      myMark.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
      

      大概是因为默认的(泪珠)标记会突出到水滴的底部。

      请注意,您也可以用其他浮点数替换常量:文档说介于 0.0 和 1.0 之间,但其他(更大或负)值似乎也可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-02
        相关资源
        最近更新 更多