Я пытаюсь установить пользовательские значки для маркеров на картах google, он отлично работает с моим телефоном, который запускает Android 4.1.2, но затем я тестировал свое приложение с помощью Galaxy Samsung tabS2, который работает 6.0.1, и кажется, что он не может найти значки. Ниже мой кодПользовательский значок Android для маркера возвращает null в Marshmallow
@Override
public void onMapReady(GoogleMap googleMap) {
deviceMap = googleMap;
deviceMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
if(customM != null)
customM.remove();
customM = deviceMap.addMarker(new MarkerOptions().position(point).icon(bmD).title(getString(R.string.customPos)));
}
});
if (deviceMap != null) {
try{
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.temp_bts_icon);
deviceM = deviceMap.addMarker(new MarkerOptions().position(devicePos).title(getString(R.string.devicePos))
.icon(BitmapDescriptorFactory.fromBitmap(bm)));
bm = BitmapFactory.decodeResource(getResources(), R.drawable.phone);
telephoneM = deviceMap.addMarker(new MarkerOptions().position(telephonePos).title(getString(R.string.telephonePos))
.icon(BitmapDescriptorFactory.fromBitmap(bm)));
}catch (Exception e){
Toast.makeText(Globals.MainActivity, "Error retrieving icons", Toast.LENGTH_SHORT).show();
deviceM = deviceMap.addMarker(new MarkerOptions().position(devicePos).title(getString(R.string.devicePos))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
telephoneM = deviceMap.addMarker(new MarkerOptions().position(telephonePos).title(getString(R.string.telephonePos))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));
}
updateDeviceMarker();
deviceMap.getUiSettings().setMyLocationButtonEnabled(true);
deviceMap.getUiSettings().setZoomGesturesEnabled(true);
deviceMap.getUiSettings().setZoomControlsEnabled(true);
deviceMap.getUiSettings().setCompassEnabled(true);
deviceMap.getUiSettings().setAllGesturesEnabled(true);
deviceMap.moveCamera(CameraUpdateFactory.newLatLngZoom(deviceM.getPosition(), 1f));
}
}
Я также попытался это сделать:
telephoneM = deviceMap.addMarker(new MarkerOptions().position(telephonePos).title(getString(R.string.telephonePos).icon(BitmapDescriptorFactory.fromResource(R.drawable.temp_bts_icon));
Благодаря человеку! Второй работает! В любом случае, есть ли у вас какие-либо подсказки, почему установка значка непосредственно из ресурса не работает? Просто, чтобы понять –
Я пробовал ваш код, вам не хватает двух закрывающих круглых скобок, один после названия и один в конце. Но после этого он должен работать и на Android Marshmallow. Возможно, некоторые интересные проблемы, я действительно не знаю. – gabodroid