¿Es posible cambiar el color de la FadingEdge de un Listview?
Pregunta
Quiero dar el efecto de que el ListView se ha desvanecido de lo que está a su alrededor. Por defecto está configurado a cualquier color de su ListView es. Puedo ajustar la orientación de la FadingEdge y el tamaño de la FadingEdge pero no el color. ¿Es posible?
Solución
Sí se puede!
setCacheColorHint(Color.WHITE);
Otros consejos
Usted tendrá que crear una nueva clase que se extiende ListView.
package com.mypackage;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class ColorFadeListView extends ListView
{
// fade to green by default
private static int mFadeColor = 0xFF00FF00;
public ColorFadeListView(Context context, AttributeSet attrs)
{
this(context, attrs,0);
}
public ColorFadeListView(Context context, AttributeSet attrs, int defStyle)
{
super(context,attrs,defStyle);
setFadingEdgeLength(30);
setVerticalFadingEdgeEnabled(true);
}
@Override
public int getSolidColor()
{
return mFadeColor;
}
public void setFadeColor( int fadeColor )
{
mFadeColor = fadeColor;
}
public int getFadeColor()
{
return mFadeColor;
}
}
Puede utilizar esta vista de la lista de forma idéntica a un ListView
normal (aunque tendrá que emitir correctamente para utilizar el fadeColor métodos de acceso). En el código XML, en lugar de definir un objeto como <ListView android:properties.../>
definirlo como <com.mypackage.ColorFadeListView android:properties.../>
Puede probar esto (es un truco, lo sé):
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.MULTIPLY);
Me tomó ventaja del hecho de que el efecto de brillo es en realidad un Disponibles compartido y aplica un filtro en él: http://evendanan.net/android/branding/2013/12/09/branding-edge-effect/