【发布时间】:2015-07-28 04:31:20
【问题描述】:
我无法弄清楚如何在用户点击它时更改标记的可绘制对象,然后在用户将手指离开屏幕时返回到原始可绘制对象。
我已经知道如何使用这个来更改标记的可绘制对象:
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my_drawable));
问题是,该代码到底应该放在哪里?如果我将它放在onMarkerClick 回调中,那么为时已晚,因为该回调在用户将手指离开屏幕后触发(就像任何视图中的正常点击事件仅在手指离开屏幕时触发)。
我尝试将可绘制对象设置为选择器(如下所示),但它不起作用(代码引发异常):
final BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.my_selector);
final MarkerOptions markerOptions = new MarkerOptions().icon(bitmapDescriptor)
.anchor(0.5f, 1.0f)
.position(latLon);
这里是 my_selector.xml(上面使用过):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/drawable_A" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@drawable/drawable_B" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/drawable_B" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="@android:color/white" />
【问题讨论】:
-
我也面临这个问题。你解决了吗?
-
@CodeHunter 不,我终于能够说服设计团队稍微改变他们的设计。
-
我明白了。好吧,当我单击标记时,我可以放置一个按下的图标,但是当我单击另一个标记时,不能返回前一个默认值。感谢您的快速回复。
标签: android google-maps selector drawable marker