Je veux donner l'effet que le ListView s'est estompé de ce qui l'entoure. Par défaut, il est défini sur la couleur de votre ListView. Je peux ajuster l'orientation du FadingEdge et la taille du FadingEdge mais pas la couleur. C'est possible?Est-il possible de changer la couleur du FadingEdge d'une Listview?
Répondre
Oui, vous pouvez!
setCacheColorHint(Color.WHITE);
Vous devrez créer une nouvelle classe qui étend 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;
}
}
Vous pouvez utiliser cette vue liste identique à une ListView
normale (bien que vous devrez jeter correctement utiliser les méthodes accesseurs fadeColor). Dans votre XML, au lieu de définir un objet comme <ListView android:properties.../>
définir comme <com.mypackage.ColorFadeListView android:properties.../>
C'est génial. Merci de votre aide. – NotACleverMan
Y a-t-il un moyen d'accomplir avec le bord fading sur la barre d'action pour le nid d'abeilles? – draksia
Cela ne fonctionne pas pour moi sur un Motorola Razer (Android 2.3.5). Je reçois les zones de fondu de taille 30, mais elles sont noires. Fonctionne sur un émulateur 2.3 si et sur un HTC Desire S avec Android 2.3.5. –
Vous pouvez essayer (c'est un hack, je sais):
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.MULTIPLY);
Je profitais du fait que l'effet de lueur est en fait un partage Dessiné et appliqué un filtre dessus: http://evendanan.net/android/branding/2013/12/09/branding-edge-effect/
Merci, cela fait ce que je veux, mais il définit également la couleur d'arrière-plan lors du défilement. Y a-t-il un moyen de séparer les deux? – NotACleverMan
Donnez une couleur de fond à vos cellules. –
Et donnez votre listeVoir le même arrière-plan que les cellules. Évidemment ne fonctionnera pas avec des images en arrière-plan (voir la solution ci-dessous) – bernstein