I'm trying to apply a linear gradient to my ListView. This is the content of my drawable xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#3A3C39"
android:endColor="#181818"
android:angle="270"
/>
<corners android:radius="0dp" />
</shape>
So I apply it to my ListView with:
android:background="@drawable/shape_background_grey"
It works but it looks very "banded" on emulator and on a real device too.
Is there any way to reduce this "behaviour"?
As Romain Guy suggests:
listView.getBackground().setDither(true);
solves my problem
If this is not enough especially for AMOLED and/or hdpi devices try this:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}