2016-07-28 3 views
0

Я хотел нарисовать маркер на карте Google на основе данных о местоположении, которые я собрал. Когда я тестировал код с помощью Galaxy S5, он рисует маркер, но когда я пытаюсь сделать то же самое с помощью Motorola, он не может нарисовать маркер порой и рисует его в другое время. Объект, который представляет маркер, всегда присутствует даже в Motorola. Galaxy работает под управлением Android 5.1.1 и Motorola 5.1: код выглядит следующим образом.Пользовательский маркер не нарисован на некоторых устройствах

private MarkerOptions getMarkerForItem(Provider pro, LatLng lctionll, float brng){ 
     MarkerOptions mo = new MarkerOptions(); 
     isMarkerAlive = true; 
     mo.icon((BitmapDescriptorFactory.fromResource(R.drawable.cuteMarker))) 
       .anchor(0.5f, 0.5f) //so marker rotates around the center 
       .position(lctionll) 
       .rotation(brng) 
       .flat(true); 
     return mo; 
    } 

Существует аналогичная question in SO, но нет ответа относительно аппаратных различий и как бороться с этими проблемами. Может кто-нибудь помочь?

EDIT ---> Галактика имеет сервисы Google Play 9.2.56 и Motorola имеет 9.4.52

+0

Что имеется в «симпатичном маркере»? насколько велика эта возможность с точки зрения пикселей? –

+0

Это настраиваемый вариант, который составляет 18 X 32 и больше по требованию размера изображения для Android. Что касается размера, я нашел, что это был правильный размер, который я хотел на всех размерах экрана, включая телефон Motorola. Как указано в вопросе, он работает иногда и в других случаях, когда объект есть, но он не нарисован на карте. –

+0

Получали ли вы какие-то ошибки? – KENdi

ответ

0

Добавление .Visible (истина) установил ее в телефоне Motorola. Я буду тестировать другие устройства и обновлять этот ответ по мере необходимости.

MarkerOptions mo = new MarkerOptions().icon((BitmapDescriptorFactory.fromResource(R.drawable.movingcab))) 
       .anchor(0.5f, 0.5f) //so marker rotates around the center 
       .position(lctionll) 
       .rotation(brng) 
       .visible(true) 
       .flat(true);