高德地图自定义Marker显示文字
2015-04-01 09:26
351 查看
方法一:
调用:
Marker localMarker=mAMap.addMarker(new MarkerOptions()
.position(localLatLng)
//.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.map_location_icon))));
/*.icon(BitmapDescriptorFactory.
fromView(getMyView(pm.getPm()+""))));*/
.icon(BitmapDescriptorFactory.fromBitmap(getMyBitmap(pm.getPm()+""))));
localMarker.setObject(pm);
getMyBitmap方法:
protected Bitmap getMyBitmap(String pm_val) {
Bitmap bitmap = BitmapDescriptorFactory.fromResource(
R.drawable.map_location_icon).getBitmap();
bitmap = Bitmap.createBitmap(bitmap, 0 ,0, bitmap.getWidth(),
bitmap.getHeight());
Canvas canvas = new Canvas(bitmap);
TextPaint textPaint = new TextPaint();
textPaint.setAntiAlias(true);
textPaint.setTextSize(22f);
textPaint.setColor(getResources().getColor(R.color.blue));
canvas.drawText(pm_val, 17, 35 ,textPaint);// 设置bitmap上面的文字位置
return bitmap;
}
方法二:
布局文件:
mymarker.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/map_location_icon"
android:scaleType="centerCrop"/>
<TextView
android:id="@+id/marker_tv_val"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:layout_marginTop="7px"
android:textColor="@android:color/black"
/>
</FrameLayout>
2调用:
Marker localMarker=mAMap.addMarker(new MarkerOptions()
.position(localLatLng)
//.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.map_location_icon))));
/*.icon(BitmapDescriptorFactory.
fromView(getMyView(pm.getPm()+""))));*/
.icon(BitmapDescriptorFactory.fromBitmap(getMyBitmap(pm.getPm()+""))));
localMarker.setObject(pm);
3:getMyView方法
protected View getMyView(String pm_val) {
View view=getLayoutInflater().inflate(R.layout.mymarker, null);
TextView tv_val=(TextView) view.findViewById(R.id.marker_tv_val);
tv_val.setText(pm_val);
return view;
}
第一种方法比较简洁一点
调用:
Marker localMarker=mAMap.addMarker(new MarkerOptions()
.position(localLatLng)
//.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.map_location_icon))));
/*.icon(BitmapDescriptorFactory.
fromView(getMyView(pm.getPm()+""))));*/
.icon(BitmapDescriptorFactory.fromBitmap(getMyBitmap(pm.getPm()+""))));
localMarker.setObject(pm);
getMyBitmap方法:
protected Bitmap getMyBitmap(String pm_val) {
Bitmap bitmap = BitmapDescriptorFactory.fromResource(
R.drawable.map_location_icon).getBitmap();
bitmap = Bitmap.createBitmap(bitmap, 0 ,0, bitmap.getWidth(),
bitmap.getHeight());
Canvas canvas = new Canvas(bitmap);
TextPaint textPaint = new TextPaint();
textPaint.setAntiAlias(true);
textPaint.setTextSize(22f);
textPaint.setColor(getResources().getColor(R.color.blue));
canvas.drawText(pm_val, 17, 35 ,textPaint);// 设置bitmap上面的文字位置
return bitmap;
}
方法二:
布局文件:
mymarker.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/map_location_icon"
android:scaleType="centerCrop"/>
<TextView
android:id="@+id/marker_tv_val"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:layout_marginTop="7px"
android:textColor="@android:color/black"
/>
</FrameLayout>
2调用:
Marker localMarker=mAMap.addMarker(new MarkerOptions()
.position(localLatLng)
//.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.map_location_icon))));
/*.icon(BitmapDescriptorFactory.
fromView(getMyView(pm.getPm()+""))));*/
.icon(BitmapDescriptorFactory.fromBitmap(getMyBitmap(pm.getPm()+""))));
localMarker.setObject(pm);
3:getMyView方法
protected View getMyView(String pm_val) {
View view=getLayoutInflater().inflate(R.layout.mymarker, null);
TextView tv_val=(TextView) view.findViewById(R.id.marker_tv_val);
tv_val.setText(pm_val);
return view;
}
第一种方法比较简洁一点
相关文章推荐
- 高德地图自定义marker不显示的问题
- google map使用自定义Marker在地图上添加文字标签
- 高德 地图sdk中,自定义弹出框(气泡,对话框,InfoWindow,Marker)
- 高德地图开发【覆盖物显示——Marker的使用(一)】
- 高德地图自定义marker图片相关
- 高德地图的Marker不需要setMap,创建时默认就可以显示在地图上
- 高德地图显示自定义信息窗体
- 高德地图自定义marker的图片定位的问题
- google map使用自定义Marker在地图上添加文字标示
- 高德地图点击marker,infoWindow不显示问题
- 高德地图多个Marker标记自动缩放全部显示在屏幕中
- 高德地图多个Marker标记自动缩放全部显示在屏幕中
- (转)高德地图多个Marker标记自动缩放全部显示在屏幕中
- Android高德地图路线规划,自定义图层(overlay),所有点和线刚好显示在屏幕中心
- Android 外部调起高德地图显示坐标点 自定义 标注高德地图 by Terry
- 高德地图自定义Marker点击时出现的InfoWindow
- google map使用自定义Marker在地图上添加文字标示
- 高德地图开发【覆盖物显示——Marker的使用(一)】
- 高德地图开发【覆盖物显示——Marker的使用(一)】
- ios 地图大头针自定义显示图…