java生成mapbox_java – 设置标注图像mapbox android

在iOS中,您可以通过调用以下内容轻松设置标记的标注:

[marker setCanShowCallout:YES];

[marker setRightCalloutAccessoryView:YOUR_BUTTON];

但是我找不到Mapbox Android SDK的这个功能.我现在有一个侦听器,它可以检测到calloutview上的触摸但是如何设置一个标注图像/按钮?

Marker marker = new Marker(p.getTitle(), p.getCatagoryName(), new LatLng(p.getLatitude(), p.getLongitude()));

marker.setMarker(getResources().getDrawable(getResources().getIdentifier(string, "drawable", getActivity().getPackageName())));

mMapView.addMarker(marker);

InfoWindow toolTip = marker.getToolTip(mMapView);

View view = toolTip.getView();

// view.setBackgroundResource(R.drawable.callout_button); THIS DOES NOT WORK

view.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

Log.e(TAG, "onTouch");

return true;

}

});

解决方法:

ryansh的出色响应要求我在自定义布局中包含带有ids tooltip_title和tooltip_description的TextViews.我还必须添加第三个tooltip_subdescription TextView.默认的InfoWindow代码假定存在这些视图,如果不存在则会崩溃.为了更好的控制,我扩展了InfoWindow,覆盖了onOpen,并且能够使用我想要的工具提示的任何布局.对于扩展的Marker类中重写的createTooltip,我自然地实例化并返回我的扩展InfoWindow对象.

更新.这是一个扩展标记和放大器的例子. InfoWindow支持自定义工具提示:

public class MapboxMarker extends Marker {

private MyInfoWindow mInfoWindow;

public class MyInfoWindow extends InfoWindow {

public MyInfoWindow(int layoutResId, MapView mapView) {

super(layoutResId, mapView);

}

public void onOpen(Marker overlayItem) {

//

// Set data on mInfoWindow.getView()

//

}

}

public MapboxMarker(MapView mv, LatLng aLatLng, MapController mapController){

super(mv, "Title", "Description", aLatLng);

}

@Override

protected InfoWindow createTooltip(MapView mv) {

mInfoWindow = new MyInfoWindow(R.layout.custom_tooltip_layout, mv);

return mInfoWindow;

}

}

标签:mapbox,android,java,callouts

来源: https://codeday.me/bug/20190725/1530576.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值