我一直在尝试更改KML的样式,因此KmlPoint将使用我选择的自定义标记来表示。
以下是我正在使用的标记:
我成功地使用相应的标记显示了想要的点,但它们看起来像是可能应用了颜色过滤器,或者位图被简单地损坏了,我不知道为什么。
这是我的代码:
KmlDocument dryKmlDocument = new KmlDocument();
File f2 = new File(appPath + "/dry_hydrant.kml");
dryKmlDocument.parseKMLFile(f2);
Bitmap blueBitmap = ((BitmapDrawable)ResourcesCompat.getDrawable(getResources(), R.drawable.blue, null)).getBitmap();
Style dryStyle = new Style(blueBitmap, 0x901010AA, 1.0f, 0x20AA1010);
ZoneStyler dryZoneStyler = new ZoneStyler(dryStyle, dryKmlDocument, osmView);
dryKmlOverlay = (FolderOverlay)dryKmlDocument.mKmlRoot.buildOverlay(osmView, null, dryZoneStyler, dryKmlDocument);
KmlDocument fireKmlDocument = new KmlDocument();
File f3 = new File(appPath + "/fire_hydrant.kml");
fireKmlDocument.parseKMLFile(f3);
Bitmap redBitmap = ((BitmapDrawable)ResourcesCompat.getDrawable(getResources(), R.drawable.red, null)).getBitmap();
Style fireStyle = new Style(redBitmap, 0x00000000, 1.0f, 0x00000000);
ZoneStyler fireZoneStyler = new ZoneStyler(fireStyle, fireKmlDocument, osmView);
fireKmlOverlay = (FolderOverlay)fireKmlDocument.mKmlRoot.buildOverlay(osmView, null, fireZoneStyler, fireKmlDocument);
有人能指出我可能造成这种情况的原因吗?
编辑:Imgur不想显示我的bmp标记图像,所以我在Windows资源管理器中截取了截图。答案 0 :(得分:0)
使用PNG格式,并确保角落完全透明(使用Windows Paint无法做到这一点,需要像IcoFX,Gimp,PhotoShop等......)。