Я пытаюсь применить линейный градиент к своему ListView. Это - содержание моего 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>
Таким образом, я применяю его к своему ListView с:
android:background="@drawable/shape_background_grey"
Это работает, но это выглядит очень "полосным" на эмуляторе и на физическом устройстве также.
Там какой-либо путь состоит в том, чтобы уменьшить это "поведение"?
Как предлагает Ромен Гай:
listView.getBackground().setDither(true);
решает мою проблему
Если этого недостаточно, особенно для устройств AMOLED и / или hdpi, попробуйте следующее:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}
Вы можете просто включить дизеринг для своего объекта Drawable.