J'ai un Android scrollview avec un fond blanc. Le fondu est un dégradé translucide blanc. Je voudrais le changer en noir au lieu de blanc. J'ai un ListView dans le même projet avec un fond blanc qui a un bord noir qui s'estompe par défaut, mais je ne trouve pas où (si n'importe où) qui a été défini.
Je viens de le découvrir par essais et erreurs.
Réglez simplement Android:background="@color/yourColor"
pour le <ScrollView>
. Il mettra l'ombre à la couleur donnée.
Si vous souhaitez une couleur de fondu différente de celle de l'arrière-plan, vous devez remplacer la méthode getSolidColor () de ScrollView. Par exemple:
@Override
public int getSolidColor() {
return Color.rgb(0x30, 0x30, 0x30);
}
Vous pouvez utiliser:
final int glowDrawableId = context.getResources().getIdentifier("overscroll_glow",
"drawable", "Android");
final Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
int edgeDrawableId = context.getResources().getIdentifier("overscroll_Edge", "drawable",
"Android");
final Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
androidEdge.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
Vous pouvez utiliser ceci:
https://github.com/AndroidAlliance/EdgeEffectOverride
Simple, propre et parfait!
EDIT : cela ne répond pas à la question qui demandait ScrollView
. Cette réponse ne fonctionne que sur AbsListView
et ses descendants (y compris ListView
).
La couleur du fondu est contrôlée par le Android:cacheColorHint
attribut.
Par exemple.:
<ScrollView Android:cacheColorHint="#ff000000" Android:background="#ffffffff" />
définira l'arrière-plan sur blanc, et le cacheColorHint
est utilisé pour dessiner la couleur du fondu - dans ce cas, ce serait le noir.
Si vous ne savez pas ce qui a changé la couleur de votre fondu, c'était probablement l'application d'un style ou d'un thème. Vérifiez votre manifeste pour Android:theme="something"
dans une activité. Si le thème provient du groupe Android.R.style.Theme.Light
l'Edge sera blanc. Le défaut Android.R.style.Theme
et Android.R.style.Theme.Black
aura des bords noirs. Les thèmes affectent également d'autres attributs, alors vérifiez les attributs complètement avant de les jeter pour une chose.
Faites ceci:
<ScrollView
Android:theme="@style/scrollUpdate"
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1" >
dans les valeurs\styles mettre le style
<style name="scrollUpdate">
<item name="colorAccent">@color/yourcolor</item>
<item name="Android:color">@color/yourcolor</item>
<item name="colorPrimary">@color/yourcolor</item>
<item name="colorPrimaryDark">@color/yourcolor</item>
</style>
fonctionne pour moi tks!