我想使用HERE FREE SDK配置地图,所以当我单击标记时,弹出窗口中会显示一些Texts,我尝试了InfoBubble,但我认为它不再起作用了,我也想尝试MapOverlay,似乎只限于JS。 所以这是我的代码:
MapMarker myMapMarker = new MapMarker(new GeoCoordinate(LAT, LNG), myImage);
map.addMapObject(myMapMarker);
MapGesture.OnGestureListener listener = new MapGesture.OnGestureListener.OnGestureListenerAdapter() {
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject viewObj : objects) {
if (viewObj.getBaseType() == ViewObject.Type.USER_OBJECT) {
if (((MapObject)viewObj).getType() == MapObject.Type.MARKER) {
map.setInfoBubbleAdapter( new Map.InfoBubbleAdapter() {
@Override
public View getInfoBubbleContents(MapMarker mapMarker) {
return null;
}
@Override
public View getInfoBubble(MapMarker mapMarker) {
View Bubble;
Bubble =LayoutInflater.from(getActivity()).inflate(R.layout.bubble_layout, container, false);
TextView nom = Bubble.findViewById( R.id.nomecole );
nom.setText( "School" );
return Bubble;
}
} );
((MapObject)viewObj).setVisible(false);
}
}
}
return false;
}
};
和我的气泡布局: `
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:id="@+id/nomecole"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="-4dp"
android:layout_marginTop="32dp"
android:gravity="center"
android:text="@string/nom"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="13sp" />
</RelativeLayout>
`
答案 0 :(得分:1)
您必须调用MapMarker.showInfoBubble()
才能显示,而必须MapMarker.hideInfoBubble()
才能隐藏信息提示框。
此外,您可能需要删除隐藏MapMarker的行,以便在单击标记后标记仍然可见。这行:
((MapObject)viewObj).setVisible(false);
答案 1 :(得分:0)
您使用的是Here Starter还是Here Premium SDK?