android: dither = “true” не сглаживает, что не так?

Я пытался заставить андроид сгладить фоновый образ деятельности – пока что безуспешно. Я понятия не имею, что случилось.

Это то, что я сделал:

Корневой элемент моего макета активности – LinearLayout:

 

где я добавил @ drawable / background_dither в качестве фонового изображения. Я поместил XML-файл «background_dither.xml» в drawable-hdpi со следующим содержимым:

   

который ссылается на фактическое изображение background.png в drawable-hdpi. Изображение, которое включает в себя большой цветной gradleиент, действительно появляется, но с интенсивной цветовой гаммой. Из того, что я узнал из SDK, это можно смягчить, используя определение представления прокси-файла / above вместе с указанием android: dither = “true”. Это, однако, не имеет никакого эффекта.

Что мне не хватает, чтобы заставить работать сглаживание?

EDIT : Загруженные источники здесь

EDIT2 : После того, как ни один из предложенных методов не помог избавиться от цветовой гаммы, после прочтения этого сообщения в блоге от Romain Guy у меня возникла идея проверить, имеет ли мой фон PNG альфа-канал. Это не так. После добавления одного, андроид, по-видимому, использует RGB8888, как сказано в сообщении, и полоса пропускания (также для 2.2). Все еще интересно, почему другие методы не сработали.

EDIT3 : нужно убедиться, что PNG имеет не только альфа-канал, но и, по крайней мере, один пиксель с альфа-значением! = FF, в противном случае инструменты сборки Android снова разделит это bitmap на индексированную палитру без альфа-канала ,

В эту проблему тоже попал сегодня, и нашел и использовал ваше решение: создайте png в фотошопе с набором прозрачности И имея хотя бы один пиксель, используя альфу. Фактически то, что я сделал, задает слой с непрозрачностью 99%. Не влияет на цвета или что-то еще, и заставить компилятор Android оставить мой png один.

Попробуйте поставить эту строку

 getWindow().setFormat(PixelFormat.RGBA_8888); 

сразу после super.onCreate() и посмотреть, помогает ли это.

У меня тоже были эти проблемы, я исправил применение функции 9-патча к фоновому изображению.

Надеюсь, что эта помощь

Многие люди, имеющие одну и ту же проблему, сообщают, что установка setDither (true) на ваш ресурс в Java-коде работает, когда атрибут XML не работает. В этом случае, если вы можете получить ссылку на свой LinearLayout в методе onCreate, попробуйте

linearLayout.getBackground (). setDither (правда).

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

http://stuffthathappens.com/blog/2010/06/04/android-color-banding/

Удачи!

На Android 2.2.1 и ниже появляется ошибка, которая приводит к отключению сглаживания, если включена фильтрация. На Android 2.3.3 и 3.0 эта проблема кажется исправленной. Я не уверен, что то же самое может быть верно для антиалиасов, как вы включили.

  • Фоновый оттенок Lollipop не влияет на кнопку
  • Не удалось найти стиль «координаторLayoutStyle» в текущей теме
  • Ошибка раздувания fragmentа classа
  • Изменение формы уведомления
  • Что делает postInvalidate ()?
  • Android - используйте внешний профиль в панели уведомлений, например Facebook
  • Android: Как сделать все элементы внутри LinearLayout того же размера?
  • как создать собственный счетчик, как рамка вокруг спиннера с треугольником вниз с правой стороны?
  • Просмотр с горизонтальным и вертикальным панорамированием / drag and dropм и усилением
  • Прозрачная строка состояния, не работающая с windowTranslucentNavigation = "false"
  • Почему LayoutInflater игнорирует параметры layout_width и layout_height, которые я указал?
  • Interesting Posts

    Есть ли способ сделать мой жесткий диск недоступным для всех, кроме меня?

    Каковы наилучшие методы для вложенных ресурсов REST

    C # компиляция для 32/64 бит или для любого процессора?

    GridView – отображать заголовки на пустом источнике данных

    Как защитить свое программное обеспечение от незаконного распространения?

    Android получает изображение из галереи в ImageView

    Использование динамических имен столбцов в `data.table`

    Вопрос о прекращении streamа в .NET.

    Новый знак Google в Android

    Настроить десятичную точку вместо запятой в вводе номера HTML5 (на стороне клиента)

    Thread.Sleep менее 1 миллисекунды

    Как удалить дополнительное пространство полей, созданное встроенными блоками?

    JavaFX – Как использовать метод в controllerе с другого controllerа?

    Как увеличить пространство между полосками на штриховом участке в ggplot2?

    Прогресс во время большой копии файла (Копировать-элемент и запись-Прогресс?)

    Давайте будем гением компьютера.