GoogleMap v2自定义标记图像正确比例

时间:2017-05-11 11:40:16

标签: java android google-maps-markers

我希望我的Android应用程序从互联网上下载图像,并在Google地图上显示带有这些图像的标记。我还有带默认标记的标记。这工作正常,但在不同的设备上自定义标记不能正确缩放。 这是我目前的代码:

        BitmapFactory.Options options = new BitmapFactory.Options();
        DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();

        float density = metrics.density + 1;

        if (density >= 4.0)
            options.inDensity = DisplayMetrics.DENSITY_XXXHIGH; // "xxxhdpi"
        else if (density >= 3.0)
            options.inDensity = DisplayMetrics.DENSITY_XXHIGH;  // "xxhdpi"
        else if (density >= 2.0)
            options.inDensity = DisplayMetrics.DENSITY_XHIGH;   // "xhdpi"
        else if (density >= 1.5)
            options.inDensity = DisplayMetrics.DENSITY_HIGH;    // "hdpi"
        else if (density >= 1.0)
            options.inDensity = DisplayMetrics.DENSITY_MEDIUM;  // "mdpi"
        else
            options.inDensity = DisplayMetrics.DENSITY_LOW;     // "ldpi"

        for(int i = 0; i < images_list.size(); ++i) {
            String icon = images_list.get(i).icon;
            if(icon.length() > 0) {
                String fileName = icon.substring(icon.lastIndexOf('/') + 1);
                File file = Utils.getImageFile(fileName);
                Bitmap markerBitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
                ...
            }

        }

我发现这个问题的唯一地方就在这里:https://www.b4x.com/android/forum/threads/googlemap-marker-size-problem.33841/但是没有人找到解决方案。

我希望我的自定义标记与默认标记的缩放方式相同。无法获取默认标记的当前宽度和高度。

我也可以用自定义标记替换默认标记,但这不会解决缩放问题,即默认标记在所有分辨率上总是看起来很好。

有什么想法吗?

0 个答案:

没有答案