Cómo mostrar la animación de ondulación en google map en Android?
Estoy intentando fijar la animación de la ondulación en el google map
usando Lat-Lng específico, vea por favor esto que describe exactamente lo que quiero, me referí encima del acoplamiento pero incapaz de fijar la animación en el google map
.
Lo que he intentado hasta ahora es-
- "La aplicación no se ejecutará a menos que actualices los servicios de Google Play" con Google Maps API
- Posicionamiento de Google Maps v2 zoom en controles en Android
- Google Maps Android V2 relleno con rotación alrededor del usuario
- Android: Buscar lugares cercanos con la API de Google Places
- ¿Existe una API para la navegación de Google Maps en Android?
Mi código xml:
<com.test.custom.RippleBackground xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rippleLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" app:rb_color="#0099CC" app:rb_duration="5000" app:rb_radius="32dp" app:rb_rippleAmount="4" app:rb_scale="6" > <ImageView android:id="@+id/imgMapProfile" android:layout_width="64dp" android:layout_height="64dp" android:layout_centerInParent="true" android:src="@drawable/ic_profile_active" /> </com.test.custom.RippleBackground>
Mi código Java para colocar ripple en google map:
LatLng currentAddressLatLong; currentAddressLatLong = new LatLng(gps.getLatitude(), gps.getLongitude()); RippleBackground rippleLayout=(RippleBackground)findViewById(R.id.rippleLayout); rippleLayout.setVisibility(View.VISIBLE); ImageView imgMapProfile=(ImageView)findViewById(R.id.imgMapProfile); Bitmap markerUserBitmap = Comman.createDrawableFromView(NearByActivity.this, rippleLayout); googleMap.addMarker(new MarkerOptions().position(currentAddressLatLong).icon(BitmapDescriptorFactory.fromBitmap(markerUserBitmap))); googleMap.moveCamera(CameraUpdateFactory.newLatLng(currentAddressLatLong)); googleMap.animateCamera(CameraUpdateFactory.zoomTo(11)); rippleLayout.startRippleAnimation(); // Convert a view to bitmap function public static Bitmap createDrawableFromView(Context context, View view) { DisplayMetrics displayMetrics = new DisplayMetrics(); ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels); view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels); view.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); view.draw(canvas); return bitmap; }
Pero el mapa de bits no se está animando. por favor ayuda. muchas gracias.
- MapView onCreate lanza NullPointerException en dispositivos LG
- Importar la biblioteca google-play-service mostrando una X roja junto a esta referencia android
- INSTALL_FAILED_CPU_ABI_INCOMPATIBLE en el dispositivo utilizando intellij
- Google Maps no puede agregar referencia a los servicios de Google Play
- Mi botón de ubicación
- Cómo cambiar la posición del botón Mi ubicación en Google Maps con Android Studio
- Servicio de Google para Android Recogedor de lugares setLatLngBounds () no funciona
- Android - mapas offline, no basados en vectores, personalizados
Para todos los que quieren crear ripple de fondo en google map como este
- Cree 3 GroundOverlay con el mismo círculo. Poner la imagen en una carpeta
- Crear animador de valor
- Enviar 3 GroundOverlay en ValueAnimator periódicamente Debajo de código: Inside onCreateView
new Handler().postDelayed(new Runnable() { @Override public void run() {final GroundOverlay groundOverlay11=googleMap.addGroundOverlay(new GroundOverlayOptions() .position(latLng, 2000) .transparency(0.5f) .image(BitmapDescriptorFactory.fromResource(R.drawable.krug))); OverLay(groundOverlay11); } }, 0);
new Handler().postDelayed(new Runnable() { @Override public void run() { final GroundOverlay groundOverlay1=googleMap.addGroundOverlay(new GroundOverlayOptions() .position(latLng, 2000) .transparency(0.5f) .image(BitmapDescriptorFactory.fromResource(R.drawable.krug))); OverLay(groundOverlay1); } }, 4000); new Handler().postDelayed(new Runnable() { @Override public void run() { final GroundOverlay groundOverlay2=googleMap.addGroundOverlay(new GroundOverlayOptions() .position(latLng, 2000) .transparency(0.5f) .image(BitmapDescriptorFactory.fromResource(R.drawable.krug))); OverLay(groundOverlay2); } }, 8000);
Y la clase Overlay:
public void OverLay(final GroundOverlay groundOverlay){ vAnimator = ValueAnimator.ofInt(0, 2000); int r=99999; vAnimator.setRepeatCount(r); //vAnimator.setIntValues(0, 500); vAnimator.setDuration(12000); vAnimator.setEvaluator(new IntEvaluator()); vAnimator.setInterpolator(new LinearInterpolator()); vAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { float animatedFraction = valueAnimator.getAnimatedFraction(); Integer i = (Integer) valueAnimator.getAnimatedValue(); groundOverlay.setDimensions(i); } }); vAnimator.start(); }
Hay una biblioteca de Android para mostrar efectos de rizo en google maps. Utilizando esta biblioteca, sólo se necesita 2 líneas de código para mostrar el efecto de rizo en google maps según su pregunta. Visite este enlace para que la biblioteca muestre ripple: https://github.com/aarsy/GoogleMapsRippleEffect
- Conversión de fecha a un idioma diferente
- ¿Cómo cambiar el título de la barra de herramientas mediante el diseño?