2015-04-02 3 views
0

Я пользуюсь Google Maps V2. Я пытаюсь создать пользовательские маркеры во время выполнения с изображениями и текстом, которые поступают с сервера. Я хотел бы иметь воздушный шар, похожий на маркер, который растягивается в соответствии с размером растрового изображения с текстом поверх него.Android - Динамический пользовательский маркер карты

Например:

Допустим, у меня есть воздушный шар образ как это:

enter image description here

Образ, как это:

enter image description here

То, что я пытаюсь достичь было бы разместить это изображение внутри воздушного шара с некоторым текстом над изображением, примерно так:

enter image description here

Если это возможно, то как я могу добиться этого?

я должен поместить конечное изображение в качестве значка для опции маркеров в картах Google, что-то вроде этого:

// Resource ID from the drawable folder 
int balloon_id = getResources().getInteger(R.drawable.balloon_image); 

// A bitmap image that came from the server (I got this done) 
Bitmap image_from_server; 

// Some text that came from the server (I got this done too) 
String some_text; 

// A method that will return the final resulted image to be placed to the marker options 
// What I need is to find out the work out of this method (This is where I am struggling 
BitmapDescriptor result_image = some_method(balloon_id, image_from_server, some_text); 

// Marker Options for the custom marker 
MarkerOptions mo = new MarkerOptions() 
        .position(latlng) 
        .icon(result_image); 

// Then I can have my marker 
Marker my_marker = google_map.addMarker(mo); 

Я посмотрел в StackOverflow для подобных решений не дали никаких результатов. В принятом ответе будет содержаться метод, который я изо всех сил пытаюсь построить или очень хорошее направление для того, где я могу решить это решение самостоятельно (но, пожалуйста, взгляните на параметры моего метода и то, что он возвращает, если мне нужно настроить это не большая проблема), спасибо заранее!

ответ

1

Ну, вы можете нарисовать свои изображения на canvas, накладывая друг на друга. Эта функция будет делать именно это.

, поэтому вы просто помещаете свои изображения/текст в правильное положение и создаете их как растровые изображения, а затем накладываете их по порядку.

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { 
    Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig()); 
    Canvas canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bmp1, new Matrix(), null); 
    canvas.drawBitmap(bmp2, new Matrix(), null); 
    return bmOverlay; 
} 
Смежные вопросы