Intereting Posts
Intellij не может запускать приложение в Genymotion (но может запустить его) Разница между android.support.v7.app.AlertController.RecycleListView и android.support.v7.widget.RecyclerView Set_metadata_recursive сбой при установке Android Где найти исходные изображения ресурсов Android Как установить равное расстояние с Android GridView? Имя проекта при выпуске проектов Android в Eclipse Файл APK Repackage для хранения настраиваемых активов – какой инструмент построения использовать? JavaMail – анализ содержимого электронной почты, похоже, не может заставить его работать! (Message.getContent ()) Хореограф NullPointerException Прокрутка NestedScrollView с помощью recycliewiew Почему размеры шрифтов EM очень малы на Android-мобиле? Модели синтаксического разбора Android для настраиваемого виджета не работают AsyncTask с индикатором ProgressDialog и Progress Bar Android – Как создать идентификатор xml? Включение и выключение вибрации в программном обеспечении Android

Можно ли сгладить градиент?

Я использую следующие возможности:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="@color/content_background_gradient_start" android:endColor="@color/content_background_gradient_end" android:angle="270" /> </shape> 

Проблема в том, что я получаю суровые обвязки на устройствах hdpi (например, Nexus One и Droid), так как градиент идет от верхней части экрана до самого низа.

Согласно http://idunnolol.com/android/drawables.html#shape_gradient, для градиента нет атрибута «сглаживание». Можно ли что-то сделать, чтобы сгладить градиент?

Примечание: добавление dither = "true" в форму не похоже на работу.

Solutions Collecting From Web of "Можно ли сгладить градиент?"

Я написал документацию, на которую вы ссылались. Я еще раз посмотрел на код, и, к сожалению, нет способа включить сглаживание в GradientDrawable, за исключением явного вызова GradientDrawable.setDither() в коде.

(Как выглядят коды, технически вы можете включить Gradient в качестве единственного дочернего элемента <selector> и разрешить сглаживание всего селектора, однако это определенно взломать.)

Я не убежден, что разрешающая сглаживание фактически решит вашу проблему, поскольку сглаживание (по крайней мере, как это отмечено в официальных документах Android) предназначено для решения проблем с группировкой, когда устройство имеет слишком мало цветовой палитры. Это, по-видимому, проблема с диапазоном из-за размера градиента.

Привет всем, у меня такая же проблема, есть одно решение, которое работает, но это не очень хорошо.

 getWindow().setFormat(PixelFormat.RGBA_8888); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER); 

Это работает для меня, но проблема в том, что все окна затухают. Я искал способ сгладить только градиент, но я ничего не мог найти. Android: dither = "true" в xml не работает, а GradientDrawable.setDither (true) также не работает. Итак, любые идеи, как я могу сглазить только градиент?

В прошлом году я столкнулся с очень похожими проблемами и не получил никакого полезного вывода в списке разработчиков Android.

Тем не менее, некоторое время назад я обнаружил, что после того, как я попробовал <gradient> и все виды Drawable s с различными атрибутами dither и вручную создавал смятые PNG, – если я вручную создаю новое изображение с использованием GIMP и задаю плотность в этой точке (т.е. явно Ввод 120, или 240 и т. Д.) При создании изображения, он отлично смотрится даже на устройствах hdpi . И это несмотря на то, что это градиент оттенков серого, с не так много цветов.

PNG при сохранении заканчивается сравнительно большим (по крайней мере, для 240 точек на дюйм), но выглядит великолепно.