Android: Используя линейный градиент, поскольку фон выглядит полосным

Я пытаюсь применить линейный градиент к своему 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"

Это работает, но это выглядит очень "полосным" на эмуляторе и на физическом устройстве также.

Там какой-либо путь состоит в том, чтобы уменьшить это "поведение"?

81
задан kiamlaluno 29 September 2012 в 23:22
поделиться

2 ответа

Как предлагает Ромен Гай:

listView.getBackground().setDither(true);

решает мою проблему

Если этого недостаточно, особенно для устройств AMOLED и / или hdpi, попробуйте следующее:

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    Window window = getWindow();
    window.setFormat(PixelFormat.RGBA_8888);
}
82
ответ дан 24 November 2019 в 09:39
поделиться

Вы можете просто включить дизеринг для своего объекта Drawable.

38
ответ дан 24 November 2019 в 09:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: