Как создать динамически пронумерованные Pin-указатели на MapView? - PullRequest
5 голосов
/ 28 июня 2011

Я хочу отобразить некоторые местоположения на моем MapView. В этих местах будут отображаться выводы, которые будут иметь номера 1,2,3 .. и т. Д. (Аналогично результатам Google maps, но это A, B, C ..). Я думаю, что это не возможно иметь булавки всех чисел.

Есть ли способ, которым я могу просто создать макет с фоном выводов с TextView, и я буду динамически помещать число в TextView, и этот макет плохо будет использовать в качестве выводимого булавки?

Или любой другой метод для достижения этой цели? Пожалуйста, предоставьте некоторые предложения.

(я могу показывать различные выводы для рисования на MapView. Я просто хочу динамически создавать рисунки)

1 Ответ

5 голосов
/ 29 июня 2011

Решил это.

Надул TextView с помощью фона для булавки и динамически установил положение в TextView.

public Drawable createFromView(int positionNumber)
{
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.drawable.pin_icon, null, false);
    TextView tv = (TextView) view.findViewById(R.id.pin_background);
    tv.setText("     "+ (positionNumber+1) );   // +1 since position is starting from 0
    tv.setDrawingCacheEnabled(true);
    tv.layout(0, 0, 50, 50);
    tv.buildDrawingCache();
    Bitmap b = Bitmap.createBitmap(tv.getDrawingCache());
    tv.setDrawingCacheEnabled(false);
    Drawable d = new BitmapDrawable(b);
    return d;
}
...