我希望我的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/但是没有人找到解决方案。
我希望我的自定义标记与默认标记的缩放方式相同。无法获取默认标记的当前宽度和高度。
我也可以用自定义标记替换默认标记,但这不会解决缩放问题,即默认标记在所有分辨率上总是看起来很好。
有什么想法吗?