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

Я сделал градиент оттенка с 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: Может быть, это можно решить, установив неравные позиции в цвета, но как я могу рассчитать эти точные позиции?

    Я работал над тем, чтобы решить это более 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 градусов слева от моего начала градиента, вызывая смещение.

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

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

    Intereting Posts
    Значение «debuggable» для Android Android gradle build: запуск assembleDebug позволяет запускать задачи выделения зависимостей проектов React native Android SyntaxError: Попытка переопределить свойство 'key' Какой метод вызывается при закрытии приложения Соглашение о распространении Google-разработчика Google изменилось Звук приложения для Android бесплатно Как вставить журнал в LogCat, который, когда я нажимаю на него, переходит к своей строке в коде? Отбросить мяч назад андроид Панель уведомлений Android открывает последнюю активную активность? Лучший способ кэшировать ответ XML / JSON в мое приложение. Полный текстовый файл? Список голосовых команд, которые запускают проверку частоты сердечных сокращений Как добавить расширенную библиотеку «android.supportv4.app» в ваше приложение? Не может получить R.anim в моем проекте Что означает публикация сообщения об ошибке Google Play APK? Функция прокрутки меню навигационного ящика