Zoom en un lienzo utilizando la función canvas.scale?
He implementado un largo método onDraw
que dibuja un conjunto de rectángulos. Los rectángulos son demasiado pequeños y quiero que parezcan más grandes. Pero desafortunadamente no puedo cambiar las coordenadas del rectángulo porque están almacenadas en una base de datos. Entonces, ¿hay alguna manera de que pueda ampliar el lienzo usando canvas.scale()
?
- Wiki sobre android-zoom-view.jar
- Android imageView: configuración de los parámetros de arrastrar y comprimir el zoom
- ¿Por qué los navegadores móviles cargan mi página completamente ampliada?
- Habilitación del zoom en la vista de desplazamiento
- Cómo agrandar el elemento central en un listview - android?
- Android MapView - botones de zoom personalizados
- ¿Cómo puedo implementar zoom en la Biblioteca Fresco?
- Establecer el nivel de zoom mínimo para MapView
- Cómo hacer zoom en android: mantener la imagen a la vista
- Lienzo Zoom va al punto (0,0)
- Cómo ampliar una vista de texto en android?
- Ampliación de Android en capas dinámicamente cambiantes
- Los eventos de zoom que funcionan en un androide Mapview
Voy a preámbulo esta respuesta diciendo que usted necesitará dibujar todo en 0,0 y después escalarlo, y finalmente traducirlo para comportarse correctamente.
Simplemente haga lo siguiente en su método onDraw:
canvas.save(); canvas.translate(xValue, yValue); canvas.scale(xScale, yScale) /* draw whatever you want scaled at 0,0*/ canvas.restore();
XScale se encoge o se estira en la dirección X, yScale se encoge o se estira en la dirección Y.
1.0 es el valor por defecto para estos, por lo que 2.0 se estira por doble y 0.5 se redujo a la mitad.
Ejemplo:
canvas.save(); canvas.translate(50, 50); canvas.scale(0.5f, 0.5f); canvas.drawRect(0.0, 0.0, 5.0, 5.0, paint); canvas.restore();
Esto dibujará un rectángulo con longitud 5,0 y ancho 5,0, escala hasta 2,5 para longitud y ancho, y luego moverlo a (50, 50).
El resultado será un rectángulo dibujado como si lo hiciera:
canvas.drawRect(50.0, 50.0, 52.5, 52.5, paint);
¡Espero que esto ayude!
- Facebook Like Button en Aplicación para Android
- ¿Puedo cerrar un cuadro de diálogo de alerta en la lista?