Рисование кругов в Android как в приложении Google Maps - PullRequest
1 голос
/ 02 августа 2011

Мне бы очень хотелось узнать, есть ли какой-нибудь учебник или пример того, как рисовать синие круги, которые появляются в приложении Google Maps (те, которые показывают, где вы находитесь). Я также хотел бы знать, как при увеличении масштаба круг увеличивается (а при уменьшении круг уменьшается и в какой-то момент исчезает). Если есть какие-то предложения или руководящие указания для этого, или с чего начать, я был бы очень признателен. Спасибо тебе

Ответы [ 2 ]

1 голос
/ 05 августа 2011

После долгих поисков ответа я наконец-то нашел решение. Вот мой код:

           int mToR= metersToRadius(55, mapView,p.getLatitudeE6());
           canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintFill);
           canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintStroke);

Это рисует круг, где screenPts является проекцией GeoPoint моего текущего местоположения.

public static int metersToRadius(float meters, MapView map, double latitude) {
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));         
}

Вот так я вычисляю радиус круга. Это я получил из другого поста (/2108422/kak-vychislit-radius-vokrug-tochki-v-android-mapview)

0 голосов
/ 02 августа 2011

Большинство операций рисования доступны в классе Canvas: http://developer.android.com/reference/android/graphics/Canvas.html

Насколько я знаю, прямого способа рисовать синие круги не существует, но вы должны иметь возможность близко имитировать его с помощью некоторых вызовов drawCircle ()

...