Как анимировать изображение маркера (Overlay) в просмотре - PullRequest
2 голосов
/ 29 июня 2011

Я разрабатываю приложение для Android, которое использует карты Google.Я хочу отобразить наложенное изображение с некоторыми координатами в MapView.Мне нужно оживить изображение.Пожалуйста помоги.Мой код выглядит следующим образом

    mapView = (MapView) findViewById(R.id.myGMap);
    mapView.setBuiltInZoomControls(true);
    mapController = mapView.getController();
    mapView.buildDrawingCache();
    mapView.setAnimationCacheEnabled(true);
    mapView.setClickable(true);
    mapView.getZoomLevel();
    mapView.displayZoomControls(true);
    mapView.getMapCenter(); 

    List<Overlay> mapOverlays = mapView.getOverlays();

    drawable = getResources().getDrawable(R.drawable.img1);
    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable);

    int latitudeE6 = (int)((12.907382) * 1000000);
    int longitudeE6 = (int)((77.595105) * 1000000);
    point = new GeoPoint(latitudeE6,longitudeE6);       
    overlayitem = new OverlayItem(point, "", "");
    mapController.animateTo(point);     
    itemizedoverlay.addOverlay(overlayitem);
    itemizedoverlay.getCenter();
    itemizedoverlay.getFocus();

    mapOverlays.add(itemizedoverlay);

Ответы [ 2 ]

3 голосов
/ 16 марта 2012
public static void addAnimationToMap(MapView map, int animationResourceId, GeoPoint geoPoint)

{   
 final ImageView view = new ImageView(map.getContext());

    view.setImageResource(animationResourceId);

    //Post to start animation because it doesn't start if start() method is called in activity OnCreate method.
    view.post(new Runnable() {
        @Override
        public void run() {
            AnimationDrawable animationDrawable = (AnimationDrawable) view.getDrawable();
            animationDrawable.start();
        }
    });

    map.addView(view);

    MapView.LayoutParams layoutParams = new MapView.LayoutParams(
        MapView.LayoutParams.WRAP_CONTENT,
        MapView.LayoutParams.WRAP_CONTENT,
        geoPoint,
        MapView.LayoutParams.BOTTOM_CENTER);
    view.setLayoutParams(layoutParams);
}

Вы можете добавить список анимации в res-> drawable и передать drawable этой функции. AFAIK единственный возможный способ добавить анимированный маркер на карту Google - это добавить вид над картой

0 голосов
/ 27 февраля 2012

Я считаю, что это сложно сделать, но вы можете использовать альфа-функцию из нарисованного для создания альфа-анимации следующим образом:

drawable.setAlpha();
...