Я вижу много ответов, делающих это трудным путем.Если у вас есть 2 изображения, и вы хотите перевернуть их в зависимости от фокуса, сделайте это простым способом:
Шаг 1. Скопируйте оба изображения в папку drawables:
Пример: mycon_focused.png,mycon.png
Шаг 2: Создание XML-файла селектора в drawables: Пример "marker.xml"
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/mycon_focused"/>
<item android:state_focused="false" android:drawable="@drawable/mycon" />
</selector>
Шаг 3: Когда вы создаете свой ItemOverlay и добавляете Drawable OverlayItems, используйте
getResources().getDrawable(R.drawable.marker);
вместо
getResources().getDrawable(R.drawable.mycon);
, а затем программно изменить его в методе касания.Прочитав много ответов и не увидев этого нигде, я просто попробовал сам, и он отлично работал.
Большое спасибо предыдущим авторам, без вашей помощи у меня не было бы отправной точки.
Еще одно примечание: если вы используете код, предложенный Шерифом эль-Хатибом, и ваша позиция маркера не установлена, попробуйте:
int width = marker.getIntrinsicWidth();
int height = marker.getIntrinsicHeight();
marker.setBounds(-(width/2),-height,(width/2),0);
вместо
marker.setBounds(0,0,marker.getIntrinsicWidth(),marker.getIntrinsicHeight());
Это должно идеально отцентрировать его.