我正在尝试使用 Google maps API v2 创建 android 应用程序并将覆盖放在包含位图的地图上。我使用 addGroundOverlay 方法将位图附加到叠加层。但是当新位置来自 LocationManager 时,我想修改位图(擦除某些内容并绘制其他内容)。有一个问题,因为根据规范,当我在叠加层上绘制位图时,我无法修改它。因此,我删除了叠加层并使用操纵的位图再次添加它:
public void draw(Bitmap modifiedBmp) {
if (overlay != null) {
overlay.remove();
}
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(modifiedBmp);
overlay = map.addGroundOverlay(new GroundOverlayOptions().image(descriptor).positionFromBounds(bounds).zIndex(100));
}
位图以前使用
p.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
擦除位图的某些区域并绘制另一个区域
但是该解决方案的性能较弱,并且更糟糕的位图重新加载在地图上可见。有人可以指出该问题的更好解决方案吗?