132 lines
4.7 KiB
Java
132 lines
4.7 KiB
Java
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
|
|
* <p>
|
|
* 描述
|
|
*/
|
|
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;
|
|
}
|
|
}
|
|
|