В Google Maps API v2 Demo есть MarkerDemoActivity
класс, в котором вы можете увидеть, как пользовательские изображения устанавливается на GoogleMap.
// Uses a custom icon.
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;
Bitmap bmp = Bitmap.createBitmap(80, 80, conf);
Canvas canvas1 = new Canvas(bmp);
// paint defines the text color, stroke width and size
Paint color = new Paint();
color.setTextSize(35);
color.setColor(Color.BLACK);
// modify canvas
canvas1.drawBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.user_picture_image), 0,0, color);
canvas1.drawText("User Name!", 30, 40, color);
// add marker to Map
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));
Это тащит Холст canvas1
на GoogleMap mMap
. Код должен (в основном) говорить сам за себя, есть много учебников, как рисовать Canvas
. Вы можете начать с просмотра Canvas and Drawables со страницы разработчика для Android.
Теперь вы также хотите загрузить изображение с URL-адреса.
URL url = new URL(user_image_url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
Вы должны загрузить изображение из фонового потока (можно использовать AsyncTask или Volley для этого).
После этого вы можете заменить BitmapFactory.decodeResource(getResources(), R.drawable.user_picture_image)
на скаченное изображение bmImg
.
Я не знаю, почему мой вопрос закрыт. Пожалуйста, помогите мне. –
Я чувствую, что это реальный вопрос. У меня также есть такое требование. Я не мог найти решение в GoogleMapDocs. Но они всегда ищут ответы на вопросы, если они не знают ответа. –
Согласитесь, это правильный вопрос. Возможно, название должно быть: Android map api v2, пользовательский растровый маркер. –