#android #google-maps #itemizedoverlay
#Android #google-карты #itemizedoverlay
Вопрос:
Я работаю с Google-maps, я добавил несколько точек на карту. Я использую это изображение в качестве маркера:
Ниже приведено то, что у меня есть сейчас:
Вы можете заметить, что у этой картинки белый фон, и она не выглядит нормально на карте. Есть ли способ удалить белый фон (и тень этого леденца)? Я считаю, что это выглядело бы намного лучше, чем.
Возможно, это было бы полезно, я публикую исходный код моего подкласса ниже:
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 amp;amp; 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:
Используемое вами изображение использует непрозрачные цвета. Для того, чтобы карта отображалась через нужные вам части, вам придется использовать прозрачность в исходном изображении.
На самом деле это не вопрос программирования, но есть много руководств о том, как это сделать
http://fabiovisentin.com/tutorial/gimp_transparent_image/gimp_how_to_make_transparent_image.asp
Другим вариантом было бы манипулировать изображением в Java, но может быть сложно получить желаемый эффект. Вы могли бы загрузить изображение в BitmapDrawable, затем обработать его и установить в качестве маркера.