0

我正在使用谷歌地图,我在地图上添加了一些点。我用这张图片作为标记:在此处输入图像描述

下面是我现在拥有的:

现在的样子

您可能会注意到这张图片有白色背景,在地图上看起来不太好。有没有办法去除白色背景(和棒棒糖的阴影)?我相信它看起来会比它好得多。

也许,这会很有用,我在下面发布了我的子类的来源:

    class PointsInMoskow extends ItemizedOverlay{
    private List<List<Address>> convertedAddresses=new ArrayList<List<Address>>();
    private List<OverlayItem> points=new ArrayList<OverlayItem>();
    private Drawable marker;

    public PointsInMoskow(Drawable marker){
        super(marker);
        this.marker=marker;

        try {
            convertedAddresses.add(geocoder.getFromLocationName("Москва, м.Фили", 2));
            convertedAddresses.add(geocoder.getFromLocationName("Москва, м.Площадь Революции", 2));
            convertedAddresses.add(geocoder.getFromLocationName("Москва, м. Калужская", 2));
            int latitude;
            int longitude;
            for (int i=0;i<3;i++) {
                List<Address> addressList=(List<Address>)convertedAddresses.get(i);
                if(addressList!=null && addressList.size()>0){
                    latitude=(int)(addressList.get(0).getLatitude()*1000000);
                    longitude=(int)(addressList.get(0).getLongitude()*1000000);
                    points.add(new OverlayItem(new GeoPoint(latitude, longitude), "title", "snippet"));
                }
            }
            populate();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    @Override
    protected OverlayItem createItem(int i) {
        return points.get(i);
    }

    @Override
    public int size() {
        return points.size();
    }
}
4

1 回答 1

0

您正在使用的图像使用不透明的颜色。为了让地图显示您想要的部分,您必须在原始图像中使用透明度。

这不是一个真正的编程问题,但是有很多关于如何做到这一点的教程

http://fabiovisentin.com/tutorial/gimp_transparent_image/gimp_how_to_make_transparent_image.asp

另一种选择是在 Java 中操作图像,但可能很难获得您想要的效果。您可以将图像加载到 BitmapDrawable 中,然后对其进行操作并将其设置为标记。

于 2011-11-12T17:05:10.730 回答