El relleno no afecta a <shape> en un diseño XML
Estoy intentando fijar el relleno en un <shape>
declarado dentro de un archivo / un formato de XML. Pero lo que sea que establezca, nada cambia relacionado con el relleno. Si modifico otras propiedades, veo los efectos en la interfaz de usuario. Pero no funciona con relleno. ¿Podría usted aconsejar por favor sobre las razones posibles por las cuales esto pudo ocurrir?
Aquí está la forma XML que estoy tratando de estilo:
- Cómo crear una aplicación para tablets y dispositivos móviles
- Biblioteca de vista o fragmento para componer la interfaz de usuario para tipos de datos comunes
- IOS-como herramienta de guión gráfico para el proyecto de Android?
- ¿Cómo crear dinámicamente un botón y asignarle un estilo definido en styles.xml?
- ¿Cómo puedo hacer que un TextView se desplace automáticamente al agregar más líneas de texto?
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <stroke android:width="1dp" android:color="#ffffff" android:dashWidth="2dp" /> <solid android:color="@color/button_white_cover" /> <corners android:radius="11dp" /> <padding android:left="1dp" android:top="20dp" android:right="20dp" android:bottom="2dp" /> </shape>
- ¿Por qué no hay botón de cancelación en los cuadros de diálogo de progreso de Android?
- Android: cómo saber si se mantiene pulsado el botón
- Implementación de las directrices de diseño de Google para Sliders
- Simple AlarmManager ejemplo para disparar una actividad en 10 minutos
- Android: actividad que no llena la pantalla principal
- Barra de Acción El Widget de Búsqueda de Sherlock expand no funciona
- Cambiar el tamaño de los diseños de forma dinámica con ViewFlipper
- Libgdx Scene2d - Set actor (TextField) de relleno?
Finalmente he resuelto mi problema con el relleno.
Así que el relleno aquí no tendrá ningún efecto sobre la forma. En vez de esto, usted tendrá que aplicar el relleno en otro drawable que lo utilizará. Así pues, tengo un dibujable que utilice la forma y allí hago siguiente:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_below"/> <item android:top="10px" android:right="10px" android:drawable="@drawable/shape_cover"/> </layer-list>
Por lo tanto, como se puede ver en el segundo <item>
he establecido el relleno (arriba y derecha). Y después de esto todo funciona.
Gracias.
Como un par de comentarios han aludido a, el mejor enfoque es envolver el <shape>
en un <item>
y establecer el relleno en su lugar. Sin embargo, hay otras opciones disponibles que se detallan en el siguiente enlace. p.ej
<item xmlns:android="http://schemas.android.com/apk/res/android" android:left="8dp" android:right="8dp" android:top="8dp" android:bottom="8dp"> <shape android:shape="rectangle"> ... </shape> </item>
Fuentes:
- Comentario de DustinB
- La respuesta de Yahel
- ¿Cómo agregar el relleno al degradado <forma> en Android?
La respuesta de Lyobomyr funciona, pero aquí está la misma solución aplicada pero sin la sobrecarga de crear un nuevo dibujable, minimizando así el desorden de archivos:
¿Cómo agregar el relleno al degradado <forma> en Android?
He resuelto este problema como este:
<shape android:shape="oval" > <stroke android:width="4dp" android:color="@android:color/transparent" /> <solid android:color="@color/colorAccent" /> </shape>
Acaba de añadir un movimiento transparente a la misma.