我想改變谷歌地圖選擇標記圖標,所以我下面的代碼:如何更改Google地圖標記圖標?
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (null != currentMarker) {
currentMarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_arrowautougasen));
}
currentMarker = marker;
currentMarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_autoselektovan));
return true;
}
});
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
if(null != currentMarker) {
currentMarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_arrowautougasen));
}
currentMarker = null;
}
});
在此行中我從下面得到錯誤:
if(null != currentMarker) {
currentMarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_arrowautougasen));
}
這裏是個例外:
java.lang.IllegalArgumentException: Unmanaged descriptor
at com.google.maps.api.android.lib6.common.k.b(:com.google.android.gms.DynamiteModulesB:162)
at com.google.maps.api.android.lib6.impl.o.c(:com.google.android.gms.DynamiteModulesB:75)
at com.google.maps.api.android.lib6.impl.db.a(:com.google.android.gms.DynamiteModulesB:334)
at com.google.android.gms.maps.model.internal.q.onTransact(:com.google.android.gms.DynamiteModulesB:204)
at android.os.Binder.transact(Binder.java:387)
at com.google.android.gms.maps.model.internal.zzf$zza$zza.zzL(Unknown Source)
at com.google.android.gms.maps.model.Marker.setIcon(Unknown Source)
at ba.kordinata.kogps.live.map.MapFragment$5.onMapClick(MapFragment.java:212)
你檢查這個【答案】(http://stackoverflow.com/questions/41902478/illegalargumentexception-unmanaged-descriptor-using-gms -maps-model-marker-setic) –
https://stackoverflow.com/a/45564994/6616489爲我的項目工作。我有一個矢量資產。所以,將其轉換爲位圖並將圖標添加爲標記 –