我想在Google地图v2的默认标记中绘制文字。我是通过从drawable中获取自己的图像来完成此操作但是如何在默认标记中更改它。
我的代码是
marker.icon(BitmapDescriptorFactory
.fromBitmap(drawTextToBitmap(getApplicationContext(), R.drawable.images,"5")));
和drawTextToBitmap
方法是。
public static Bitmap drawTextToBitmap(Context gContext,int gResId,String gText) {
Resources resources = gContext.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap bitmap =
BitmapFactory.decodeResource(resources, gResId);
android.graphics.Bitmap.Config bitmapConfig =
bitmap.getConfig();
if(bitmapConfig == null) {
bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
bitmap = bitmap.copy(bitmapConfig, true);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.BLACK);
paint.setTextSize((int) (15 * scale));
paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);
Rect bounds = new Rect();
paint.getTextBounds(gText, 0, gText.length(), bounds);
int x = (bitmap.getWidth() - bounds.width())/2;
int y = (bitmap.getHeight() + bounds.height())/2;
canvas.drawText(gText, x * scale, y * scale, paint);
return bitmap;
}
我想画那样的文字
答案 0 :(得分:7)
1.Downlaod the library from
github.com/googlemaps/android-maps-utils
2.使用检查此链接
Using android-maps-utils with ADT
TextIconGenerator tc = new TextIconGenerator(this);
Bitmap bmp = tc.makeIcon("hello");
然后将位图设置为地图对象
.icon(BitmapDescriptorFactory.fromBitmap(bmp)));
快照
答案 1 :(得分:5)
您可以使用此示例在标记中绘制文本,您必须设置latlong:
public Marker showTextOnMarker(final Context context, final GoogleMap map,
final LatLng location, final String text, final int padding,
final int fontSize) {
Marker marker = null;
if (context == null || map == null || location == null || text == null
|| fontSize <= 0) {
return marker;
}
final TextView textView = new TextView(context);
textView.setText(text);
textView.setTextSize(fontSize);
final Paint paintText = textView.getPaint();
final Rect boundsText = new Rect();
paintText.getTextBounds(text, 0, textView.length(), boundsText);
paintText.setTextAlign(Align.CENTER);
final Bitmap.Config conf = Bitmap.Config.ARGB_8888;
final Bitmap bmpText = Bitmap.createBitmap(boundsText.width() + 2
* padding, boundsText.height() + 2 * padding, conf);
final Canvas canvasText = new Canvas(bmpText);
paintText.setColor(Color.BLACK);
canvasText.drawText(text, canvasText.getWidth() / 2,
canvasText.getHeight() - padding - boundsText.bottom, paintText);
final MarkerOptions markerOptions = new MarkerOptions()
.position(location)
.icon(BitmapDescriptorFactory.fromBitmap(bmpText))
.anchor(0.5f, 1);
marker = map.addMarker(markerOptions);
return marker;
}