en una aplicación Android necesito agregar una vista a mi RelativeLayout que obedece a las siguientes reglas:diseño Android: vistas cuadráticas
- La vista debe ser cuadrática, es decir, la altura y la anchura de la vista debe coincidir .
- La vista debe llenar todo el ANCHO.
Se debe tener este aspecto (el cuadrado debe estar centrada verticalmente):
+-------------+
| activity |
| |
|+-----------+|
|| ||
|| square ||
|| ||
|| ||
|+-----------+|
| |
| |
+-------------+
Al final quiero tener un ImageView que muestra una imagen cuadrática. Actualmente lo hice estableciendo tanto el ancho como el alto de la vista en FILL_PARENT, y dejo que ImageView dibuje la imagen correctamente (usando scaleType = centerInside).
Pero: ahora quiero tener una vista adicional que esté alineada con la línea superior de la vista cuadrada, y aquí es donde falla mi enfoque. Si ahora configuro el ancho de la vista en FILL_PARENT y el alto en WRAP_CONTENT, la imagen ya no se ajustará al ancho completo.
¿Tiene alguna solución a este problema? Sería preferible si esto pudiera hacerse simplemente escribiendo XML, si es posible.
¡Gracias de antemano!
Ok, parece que no es posible usar XML, sino crear un diseño personalizado. Utilicé el SquareLayout descrito allí, simplifiqué el método onMeasure y funciona perfectamente. Aún así, creo que una solución basada solo en los administradores de diseño actuales debería haber sido mejor, pero desafortunadamente parece que algunos casos de uso como el mío no son compatibles ... ¡Gracias por su ayuda! – mreichelt
Sí, estoy bastante seguro de que codificar el diseño en Java es la única manera. Pero al menos ahora que ha definido SquareLayout, puede volver a utilizarlo en su XML tantas veces como lo necesite. – Nick