2

Я разрабатываю приложение для Android, которое использует карты Google. Я хочу отобразить оверлейное изображение с некоторыми координатами в MapView. Мне нужно оживить изображение. Пожалуйста помоги. Мой код выглядит следующим образомКак анимировать изображение маркера (Overlay) в 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); 
+0

Im борясь с этим материалом, пожалуйста, помогите. – stanley

ответ

0

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

drawable.setAlpha(); 
3
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 и передайте выделение этой функции. AFAIK единственный возможный способ добавить анимированный маркер на карте google - это добавить представление над картой

Смежные вопросы