Android Cambiando dinámicamente el tamaño del círculo sólo la mitad del círculo se actualiza correctamente
Así que he dado los controles de usuario para utilizar una barra de búsqueda para cambiar el radio de un objeto de superposición de círculo en un MapView.
Sin embargo, al arrastrar la barra de búsqueda para cambiar el radio del círculo, sólo la parte inferior se actualiza sin problemas:
- Creación de superposición personalizada en el mapa
- ¿Hay algún límite para dibujar la ruta usando Geocoder (Android)?
- MyLocationOverlay dispatchTap () no se propaga
- Centro de aplicaciones de Google Maps V2 Ubicación actual en pantalla
- El nuevo procesamiento de gms.maps.MapView se retrasa un poco cuando está en un ListView?
La mitad superior es lo que el radio del círculo era , y el fondo es donde está actualmente el radio del círculo. La parte inferior se actualiza suavemente (junto con el progreso en el buscador), pero la parte superior permanece estática durante medio segundo aproximadamente.
¿Alguna vez has visto algo así antes? Aquí está el método onDraw del objeto RadiusOverlay que estoy usando:
public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); Point point = new Point(); Projection projection = mapView.getProjection(); projection.toPixels(mGeoPoint, point); float projectedRadius = projection.metersToEquatorPixels((float)(mRadius * 1609.3d)); Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setARGB(50, 41, 166, 247); paint.setAntiAlias(true); canvas.drawCircle((float)point.x, (float)point.y, projectedRadius, paint); }
Gracias por echar un vistazo.
- Evento para el cambio de posición del marcador
- ¿Modo nocturno para los mapas de Google?
- Cómo colocar marcador de ubicación en Google Maps en Offline?
- MapView en un fragmento (Honeycomb)
- Animación de Marcador de Google Map v2
- Faltan los servicios de Google Play en el emulador de Android 2.2 mientras usas Google Maps API v2
- Subclase de SupportMapFragment resultados en un NullPointerException
- Osmdroid, API de Google Maps v2 y fragmentos
Así que agregué esto al método que dibuja la superposición de círculo:
mController.animateTo(mLocationOverlay.getMyLocation());
Donde mController
es un LocationController y mLocationOverlay
es un LocationOverlay (supongo que fue un poco obvio).
De todos modos, añadiendo esa línea hizo que el círculo se animara suavemente. Probablemente como algo que ver con el modo en que las superposiciones funcionan en el mapa, si no están centradas, se cortarán o algo así. Quién sabe. Pero lo volví a probar quitando esa línea y seguro que lo recorté de nuevo. Así que supongo que esa es la solución. Encoge los hombros
Si alguien tiene una explicación real no dude en proporcionarlo.
- ¿Integración de la unidad de Google en las aplicaciones de Android?
- Metaetiqueta de Viewport ignorada en Android 4.4 WebView