Как удалить фон маркера при реализации подкласса ItemizedOverlay? - PullRequest
0 голосов
/ 12 ноября 2011

Я работаю с Google-картами, я добавил несколько точек на карту.Я использую это изображение в качестве маркера: enter image description here

Ниже есть то, что у меня сейчас есть:

How it looks now

Вы можете заметить, что это изображение имеет белый фон ине выглядит хорошо на карте.Есть ли способ удалить белый фон (и тень этого леденца)?Я считаю, что это выглядело бы намного лучше, чем.

Может быть, это было бы полезно, я публикую источник моего подкласса ниже:

    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();
    }
}

1 Ответ

0 голосов
/ 12 ноября 2011

Используемое изображение использует непрозрачные цвета. Чтобы карта показывала нужные вам части, вам нужно использовать прозрачность исходного изображения.

Это на самом деле не вопрос программирования, но есть много уроков о том, как это сделать

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

Другой вариант - манипулировать изображением в Java, но может быть сложно получить желаемый эффект. Вы можете загрузить изображение в BitmapDrawable, затем манипулировать им и установить его в качестве маркера.

...