高德地图自定义Marker
高德地图默认的marker样式是这种
通常的修改样式是经过icon接口来调整ui
MarkerOptions markerOptions = new MarkerOptions() .position(latlng) .draggable(true) .icon(BitmapDescriptorFactory.fromBitmap(bitmap));
当遇到图片加文字的marker该如何自定义呢?如这样
步骤:.net
/** * 往地图上添加marker */ public static void addMarkersToMap(Context context, AMap aMap, LatLng latlng, PointModel model) { if (aMap != null) { View view = View.inflate(context, R.layout.view_marker, null); TextView textView = (TextView) view.findViewById(R.id.tvQuality); ImageView imageView = (ImageView) view.findViewById(R.id.ivQuality); int aqi=Integer.parseInt(model.getAqi()); if (aqi>0&&aqi<=100){ imageView.setImageResource(R.drawable.ic_quality_03); }else if(aqi>100&&aqi<=200){ imageView.setImageResource(R.drawable.ic_quality_02); }else if (aqi>200){ imageView.setImageResource(R.drawable.ic_quality_01); }else { imageView.setImageResource(R.drawable.ic_quality_01); } textView.setText(model.getAqi()); Bitmap bitmap = convertViewToBitmap(view); markerOptions = new MarkerOptions() .position(latlng) .draggable(true) .icon(BitmapDescriptorFactory.fromBitmap(bitmap)); marker = aMap.addMarker(markerOptions); } }
自定义view,而后赋值,将view转化为bitmap便可:code
//view 转bitmap public static Bitmap convertViewToBitmap(View view) { view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); return bitmap; }
原文:https://blog.csdn.net/qq_16131393/article/details/78252857blog