2013-08-28 54 views
13

Tôi đang cố thay đổi biểu tượng điểm đánh dấu. Tôi lấy hình ảnh từ một thư mục máy chủ.API Google Maps Android v2 - cách thay đổi biểu tượng điểm đánh dấu

Khi tôi đặt điểm ngắt mỗi khi kết quả "bit" là null. Và khi tôi chạy ứng dụng, tôi nhận được 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 thư mục là trong bộ nhớ trong của thiết bị Android? tại sao không đặt nó trong drawables? –

+0

Thư mục J này là từ máy chủ PC và tôi muốn tải hình ảnh từ máy chủ này. –

+0

Ồ tôi nghĩ điều đó là không thể. Bạn có thể muốn tải xuống hình ảnh đầu tiên từ máy chủ, sau đó sử dụng nó. –

Trả lời

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

Tôi nghĩ bạn đã thêm a) vào làn thứ 9 của bạn –

+0

Có thể có nghĩa là 'setIcon()'. – crm

+1

bạn chắc chắn setIcon hoạt động trên apis google mới? tôi không nghĩ như vậy –

4

Nó rất đơn giản:

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

Đối Xamarin C sử dụng #:

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

tên phương thức không bao giờ bắt đầu bằng chữ hoa. Và những phương pháp này không tồn tại. – Dennis

+1

@ Dennis tốt, nó có trên C#, nhưng đây là phiên bản Xamarin, chỉ cần chuyển đổi cùng một mã sang java, cùng một danh pháp –

+0

Được rồi, nhưng những phương pháp này không tồn tại. – Dennis