2013-08-28 5 views
13

Я пытаюсь изменить значок маркера. Я получаю изображение из одного каталога сервера.Android Google Maps API v2 - как изменить значок значка

Когда я добавляю точку останова каждый раз, когда результат «бит» равен null. И когда я запускаю приложение, я получаю java.lang.NullPointerException.

File file = new File("J:\\!!! DOCUMENTS\\!Outsourcing\\AppStore\\Benzinostancii\\Petrol\\logo.png"); 

Bitmap bit = BitmapFactory.decodeFile(String.valueOf(file)); 

double Dlat = lat.get(index); 
double Dlon = lon.get(index); 
String info = Arrayinfo.get(index); 
String name = Arrayname.get(index); 

LatLng coordinate = new LatLng(Dlat, Dlon); 
map.addMarker(new MarkerOptions() 
    .icon(BitmapDescriptorFactory.fromBitmap(bit)) 
    .position(coordinate) 
    .title(info) 
).setSnippet(name); 
+0

каталог J является то, что во внутренней памяти андроида устройства? почему бы не поместить его в чертежи? –

+0

Этот J-каталог с ПК-сервера, и я хочу загрузить изображение с этого сервера. –

+0

О, я думаю, что это невозможно. Вы можете сначала загрузить изображение с сервера, а затем использовать его. –

ответ

49
// latitude and longitude 
double latitude = 17.385044; 
double longitude = 78.486671; 

// create marker 
MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Hello Maps"); 

// Changing marker icon 
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker_icon))); 

// adding marker 
googleMap.addMarker(marker); 

More Info

+0

Я думаю, вы добавили a) в свою 9-ю полосу –

+0

Возможно, это означает 'setIcon()'. – crm

+1

вы уверены, что setIcon работает над новой google-apis? я так не думаю –

4

Это очень просто:

new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)) 
0

Для Xamarin C пользователей #:

tappedMarker.Remove(); 
MarkerOptions markerOptions = new MarkerOptions(); 
markerOptions.SetTitle(tappedMarker.Title); 
markerOptions.SetPosition(tappedMarker.Position); 

markerOptions.SetIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueGreen)); 
tappedMarker = googleMap.AddMarker(markerOptions); 
+0

имя метода никогда не начинается с верхнего регистра. И этих методов не существует. – Dennis

+1

@ Денис хорошо, он работает на C#, но это версия Xamarin, просто конвертируйте тот же код в java, ту же номенклатуру –

+0

Хорошо, но этих методов не существует. – Dennis

Смежные вопросы