要使用图像创建标记,请使用它。
// 使用自定义图标。
mSydney = mMap.addMarker(new MarkerOptions()
.position(DELHI)
.title("Delhi")
.snippet("Population: 86,398,800")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.image)));
要使用画布,
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
位图 bmp = Bitmap.createBitmap(80, 80, conf);
画布canvas1 = new Canvas(bmp);
//paint 定义文字颜色、描边宽度和大小
油漆颜色 = new Paint();
color.setTextSize(35);
color.setColor(Color.BLACK);
//修改画布
canvas1.drawBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.user_picture_image), 0,0, color);
canvas1.drawText("用户名!", 30, 40, color);
//向地图添加标记
mMap.addMarker(new MarkerOptions().position(USER_POSITION)
.icon(BitmapDescriptorFactory.fromBitmap(bmp))
// Specifies the anchor to be at a particular point in the marker image.
.anchor(0.5f, 1));
使用它你可以画出更高级的东西。
在 Google Maps API v2 Demo 中有一个 MarkerDemoActivity 类,您可以在其中
可以查看如何将自定义图像设置为 GoogleMap。
// 使用自定义图标。
mSydney = mMap.addMarker(new MarkerOptions()
.position(SYDNEY)
.title("Sydney")
.snippet("Population: 4,627,300")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
因为这只是将标记替换为您可能想要使用 Canvas 的图像
画出更复杂、更花哨的东西:
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
位图 bmp = Bitmap.createBitmap(80, 80, conf);
画布canvas1 = new Canvas(bmp);
//paint 定义文字颜色、描边宽度和大小
油漆颜色 = new Paint();
color.setTextSize(35);
color.setColor(Color.BLACK);
//修改画布
canvas1.drawBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.user_picture_image), 0,0, color);
canvas1.drawText("用户名!", 30, 40, color);
//向地图添加标记
mMap.addMarker(new MarkerOptions().position(USER_POSITION)
.icon(BitmapDescriptorFactory.fromBitmap(bmp))
// Specifies the anchor to be at a particular point in the marker image.
.anchor(0.5f, 1));
这会将 Canvas canvas1 绘制到 GoogleMap mMap 上。代码应该(大部分)
不言而喻,那里有很多教程如何绘制画布。你
可以从 Android 开发者页面中查看 Canvas 和 Drawables 开始。
现在您还想从 URL 下载图片。
URL url = 新 URL(user_image_url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
您必须从后台线程下载图像(您可以使用 AsyncTask 或 Volley)。
之后,您可以将 BitmapFactory.decodeResource(getResources(), R.drawable.user_picture_image) 替换为您下载的图像 bmImg。