package com.zhidao.tanlu; import android.content.Context; import android.graphics.Bitmap; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.mogo.map.marker.IMogoInfoWindowAdapter; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.search.geo.MogoPoiItem; import com.mogo.service.imageloader.IMogoImageLoaderListener; import com.mogo.service.imageloader.IMogoImageloader; import com.mogo.service.imageloader.MogoImageView; import com.mogo.utils.WindowUtils; import com.mogo.utils.logger.Logger; import java.text.SimpleDateFormat; import java.util.Date; /** * @author congtaowang * @since 2019-12-24 *

* 描述 */ public class TanluInfoWindowAdapter implements IMogoInfoWindowAdapter { private static final String TAG = "DemoInfoWindowAdapter"; private Context mContext; private IMogoNavi mNavi; private IMogoImageloader mImageloader; public TanluInfoWindowAdapter(Context mContext, IMogoNavi mNavi, IMogoImageloader iMogoImageloader ) { this.mContext = mContext; this.mNavi = mNavi; this.mImageloader = iMogoImageloader; } @Override public View getInfoWindow( IMogoMarker marker ) { if ( marker.getObject() instanceof MogoPoiItem ) { View view = LayoutInflater.from( mContext ).inflate( R.layout.tanlu_module_poi_info_window, null ); renderPoiVew( view, marker, ( ( MogoPoiItem ) marker.getObject() ) ); return view; } else { View view = LayoutInflater.from( mContext ).inflate( R.layout.tanlu_module_info_window, null ); renderView( view, marker ); return view; } } private void renderView( View view, final IMogoMarker marker ) { final TextView time = view.findViewById( R.id.demo_module_id_iw_time ); Button refresh = view.findViewById( R.id.demo_module_id_iw_refresh ); time.setText( new SimpleDateFormat( "yyyyMMdd HHMMSS" ).format( new Date() ) ); refresh.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ) { marker.showInfoWindow(); } } ); Button navi2 = view.findViewById( R.id.demo_module_id_iw_navito ); navi2.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ) { if ( mNavi != null ) { mNavi.naviTo( marker.getPosition(), new MogoNaviConfig() ); } } } ); Button stopNavi = view.findViewById( R.id.demo_module_id_iw_navi_stop ); stopNavi.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ) { if ( mNavi != null ) { mNavi.stopNavi(); } } } ); } private void renderPoiVew( View view, final IMogoMarker marker, MogoPoiItem item ) { final TextView time = view.findViewById( R.id.demo_module_id_iw_poi_title ); time.setText( item.getTitle() ); Button navi2 = view.findViewById( R.id.demo_module_id_iw_poi_navito ); navi2.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ) { if ( mNavi != null ) { mNavi.naviTo( marker.getPosition(), new MogoNaviConfig() ); } marker.hideInfoWindow(); marker.remove(); } } ); } public View getMarkerView( final MogoMarkerOptions options ) { final View view = LayoutInflater.from( mContext ).inflate( R.layout.tanlu_module_bubble_marker, null ); final MogoImageView icon = view.findViewById( R.id.icon ); mImageloader.displayImage( "http://imgnews.gmw.cn/attachement/jpg/site2/20191229/00d86176ed0b1f71f4580f.jpg", icon, WindowUtils.dip2px( mContext, 50 ), WindowUtils.dip2px( mContext, 50 ), new IMogoImageLoaderListener() { @Override public void onStart() { } @Override public void onCompleted( Bitmap bitmap ) { // 刷新图标 Logger.d( TAG, "loaded." ); options.icon( view ); options.notifyObservers(); } @Override public void onFailure( Exception e ) { } } ); return view; } }