android - rosa - ¿Cómo puedo agregar un efecto de degradado al color de fondo de TextView en un ListView?
paletas de colores android studio (3)
En referencia a estas preguntas:
Agregar efecto de gradiente a TextView en un ListView genera NPE
y
Cómo cambiar el color y la fuente en ListView
¿Me gustaría saber cómo configurar el fondo de un TextView
en un ListView
con efecto degradado?
En una de las preguntas anteriores, terminé agregando el efecto degradado al texto en TextView
. Y después de hojear la segunda pregunta, parece que solo puedo agregar colores de fondo fijos.
¿Cómo hago para agregar gradiente a fondo? ¿Debo hacer un CustomListAdapter
?
Referido desde aquí: ¿Cómo creo un ListView con esquinas redondeadas en Android? (Lo he encontrado muy útil.)
Agregue lo siguiente en un archivo (por ejemplo, gradient.xml) y luego colóquelo en el directorio (res / drawable / gradient.xml).
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#SomeGradientBeginColor"
android:endColor="#SomeGradientEndColor"
android:angle="270"/>
<corners
android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"/>
</shape>
Una vez que haya terminado de crear este archivo, simplemente configure el fondo de una de las siguientes maneras:
A través del Código: listView.setBackgroundResource(R.drawable.customshape);
A través de XML, simplemente agregue el siguiente atributo al contenedor (por ejemplo: LinearLayout o a cualquier campo):
android:background="@drawable/customshape"
Solo necesita crear un recurso dibujable (vea un ejemplo a continuación) y agregarlo al diseño que creó para su ListItem.
El dibujable (en su carpeta res / drawable - nómbrelo como sea - listgrad.xml for ex) podría tener el siguiente aspecto:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/gradient_start"
android:endColor="@color/gradient_end"
android:angle="-270" />
</shape>
Lo agregaría al diseño para su elemento de lista (el archivo layout.xml que define para esto) como este fragmento de código:
<TextView
android:id="@+id/ranking_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/list_grad"
/>
...
Una vez que cree un gradiente, puede aplicarlo a casi cualquier cosa, sea texto, diseño o botón.
Para entender cómo crear y usar un gradiente consulte este enlace .
Para crear un gradiente, debe agregarlo al siguiente directorio
Código para gradiente sería algo como esto -
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:startColor="#ff2d9a59"
android:centerColor="#ff42959a"
android:endColor="#ff23729a"
android:angle="135"/>
</shape>
</item>
</selector>