fondos - paletas de colores android studio
¿Cómo agregar relleno a degradado<shape> en Android? (3)
Otra solución usando el recuadro:
<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="6dp"
android:insetRight="6dp" >
<shape
android:shape="rectangle">
<gradient
android:startColor="#ccd0d3"
android:centerColor="#b6babd"
android:endColor="#ccd0d3"
android:height="1px"
android:angle="0" />
</shape>
</inset>
Tengo una forma con un degradado que estoy usando como divisor entre los elementos de ListView
. Lo he definido como sigue:
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#ccd0d3"
android:centerColor="#b6babd"
android:endColor="#ccd0d3"
android:height="1px"
android:angle="0" />
</shape>
Me gustaría agregar 6 píxeles de relleno a cada lado del degradado, para que no se extienda de borde a borde de la pantalla.
Sin embargo, no importa dónde coloque un android:left="6px"
y android:right="6px"
, no parece tener efecto. Puedo ponerlo en el elemento <shape>
, el elemento <gradient>
o en un elemento secundario <padding>
de <shape>
, y no cambia nada.
¿Cómo puedo agregar el relleno a la izquierda y la derecha de mi divisor de lista?
Supongo que podrías combinarlo así:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="6dp"
android:right="6dp">
<shape android:shape="rectangle">
<gradient android:startColor="#ccd0d3"
android:centerColor="#b6babd"
android:endColor="#ccd0d3"
android:height="1px"
android:angle="0"/>
</shape>
</item>
</layer-list>
Una solución parece ser "envolver" mi dibujo con otro dibujo que especifica el relleno apropiado.
Por ejemplo, list_divider.xml
sería:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="6dp"
android:right="6dp"
android:drawable="@drawable/list_divider_inner" />
</layer-list>
Y luego list_divider_inner.xml
sería el list_divider_inner.xml
original:
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#ccd0d3"
android:centerColor="#b6babd"
android:endColor="#ccd0d3"
android:height="1px"
android:angle="0" />
</shape>
Esto resulta en dos archivos para especificar un divisor simple sin embargo. No sé si hay una manera de hacerlo con un solo archivo sin embargo.