Entendiendo el recorte de lienzo de Android
Estoy teniendo problemas para encontrar una respuesta a esto. Considere el siguiente código de recorte:
boolean is_ok = mycanvas.clipRect(clip_left, clip_top, clip_right+1, clip_bottom+1); mycanvas.getClipBounds(clipRect); if (!is_ok || clipRect.left != clip_left || clipRect.top != clip_top || clipRect.right != clip_right+1 || clipRect.bottom != clip_bottom+1) { Log.i("DEBUG", "setClipping failed"); }
Cuando se devuelven los límites del clip, no coinciden con lo que se acaba de configurar. Por ejemplo, si clip_left, clip_top, clip_right, clip_bottom son (100, 50, 109, 59), entonces esperaría que los límites de recorte para ser (100, 50, 110, 60) dado el código anterior. No lo es. GetClipBounds () devuelve (100, 51, 110, 60).
- Circular sector con forma de recorte máscara con Path.addArc?
- Android: Tablerow multiline textview recorte verticalmente
- ¿Por qué se cortan las animaciones de Vista a veces?
- Cortar una imagen de mapa de bits
- Eliminación de espacios de la cadena
¿Por qué es top = 51 cuando sólo lo configuro a 50? Hay algo bajo el capó que no entiendo todavía.
- Ajustar la funcionalidad de vídeo en una aplicación Android
- Recorte de mapa de bits
- Altura dinámica de TextView dentro de un GridLayout
- Recorte de la cámara Android
- Aplicar una máscara a una sola vista de superposición sin enmascarar toda la actividad
OK, necesito leer más claramente antes de hacer preguntas. En caso de que alguien esté interesado, yo mismo responderé:
Al establecer un nuevo clipRect, asumí que reemplazaría el recorte anterior. Esto NO es así. En su lugar, crea una intersección con el recorte anterior. Desde la página de desarrolladores de Android:
ClipRect (flotador a la izquierda, flotador superior, flotador a la derecha, flotante inferior)
Intersectar el clip actual con el rectángulo especificado, que se expresa en coordenadas locales.