Intereting Posts
Добавьте поддержку JS и CSS в проект Android Studio Блокировать анимацию по умолчанию для startActivity Почему Locale.getDefault (). GetLanguage () в Android возвращает отображаемое имя вместо кода языка? Получите профиль видеопотока MPEG-4 программно на Android SyncAdapter periodicsync () не запускается Как исправить Unmarshalling неизвестный код типа XXX при смещении YYY в Android? Android. Отображать контакты в виде списка Android: установка минимальной высоты представления программно Невозможно создать экземпляр класса: android.support.v7.widget.SearchView Задержка в потоковом аудио Изменение формы сплошной цвет во время выполнения внутри Drawable xml, используемого в качестве фона Android: Как открыть конкретную папку через Intent и показать ее содержимое в браузере файлов? Динамическое добавление просмотров в RelativeLayout внутри ScrollView Почему MonoDroid не может найти мои сборки? Как перехватить аудиопоток на устройстве Android?

Линейный градиент оттягивается от заданного положения

Я сделал градиент оттенка с Lineargradient с помощью этого кода: (Я знаю, что его можно было бы упростить с помощью Color.parseColor но он должен быть таким образом, что я намереваюсь сделать. Я тоже не могу использовать drawable.)

 colors = new int[]{ Color.HSVToColor(new float[]{0, 1, 1}), Color.HSVToColor(new float[]{60, 1, 1}), Color.HSVToColor(new float[]{120, 1, 1}), Color.HSVToColor(new float[]{180, 1, 1}), Color.HSVToColor(new float[]{240, 1, 1}), Color.HSVToColor(new float[]{300, 1, 1}), Color.HSVToColor(new float[]{360, 1, 1}) }; Shader shader = new LinearGradient(0, 0, width, 0, colors, null, Shader.TileMode.CLAMP); paint.setShader(shader); 

Который производит этот результат со слегка смещенными цветами, зеленая область слишком мала, а синяя область слишком велика по сравнению с ожидаемым результатом.

сравнение

Я все проверил. Я попытался использовать new float[]{0f, 1/6f, 2/6f, 3/6f, 4/6f, 5/6f, 1f} вместо null для аргумента позиции, тот же результат. Возможно, это тоже ошибка.

Обратите внимание, что это не дубликат этого сообщения и этого . Это о некорректных градиентных остановках, установленных в коде, что не является моим делом. Это может быть связано с этим, но я не понимаю, как это сделать.

EDIT: Может быть, это можно решить, установив неравные позиции в цвета, но как я могу рассчитать эти точные позиции?

Solutions Collecting From Web of "Линейный градиент оттягивается от заданного положения"

Я работал над тем, чтобы решить это более 3 часов в целом и хорошо … получается, что это было почти ничего. И это было в моем коде. Хуже всего то, что я добавил щедрость и решил это через 15 минут.

Я рисовал градиент в виде с определенным дополнением, а вместо этого

 LinearGradient(0, 0, width, 0, colors, null, Shader.TileMode.CLAMP); 

Я должен был сделать это:

 LinearGradient(left, 0, right, 0, colors, null, Shader.TileMode.CLAMP); 

Каким-то образом градиент начинается до заполнения, которое я добавил к моему представлению, на (0, 0), что на 10 градусов слева от моего начала градиента, вызывая смещение.

Введите описание изображения здесь

Все это имеет смысл сейчас.