![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Пытаюсь нарисовать градиент.
Все вроде бы рисуется, но проблема в том, что нет плавности между переходами цветов (картинка с градиентом в аттаче). Код, которым я рисую градиент: x, y, width, height - область для градиента startColor, endColor - начальный/конечный цвет градиента
Присоединённый файл ( Кол-во скачиваний: 34 ) ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
Попробуй так:
Это сообщение отредактировал(а) Platon - 14.5.2008, 14:13 |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Platon, Результат точно такой же.
Есть предположение, что экран просто не может отобразить все цвета, поэтому заменяет этот цвет на какой-то другой. Цвет, который я могу указать (в качестве аргумента g.setColor ) лежит в диапозоне от нуля до 0xFFFFFF = а это 16М цветов, телефон же на экране которого я рисую градиент может отобразить только 260К цветов. Может в этом проблема? Если да, то как эту проблему можно решить? (а ее можно решить, так как фотошопу достаточно 128 цветов чтобы отобразить нормальный градиент на картинке размером 240х320) |
|||
|
||||
Dummy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Если градиентную картинку в 128 цветах, сделанную в фотошопе, закинуть на этот телефон, то она отображается нормально, без скачков цвета? А на WTK как выглядит градиент, обсчитанный по твоей процедуре?
Если в обоих этих случаях картинка выглядит хорошо - надо подумать, как изменить алгоритм обсчета. Если нет - значит, действительно проблемы с цветопередачей экрана. Платформа, например, может использовать схему кодирования цвета типа 565, 555 и т. д., так что при конвертации происходит потеря части информации о цвете. В свое время мы тоже рисовали градиент (правда, чуть-чуть по иной формуле его обсчитывали), так на симуляторе под Win32 он выглядел неплохо, а вот на железке - довольно мерзко, с такими же скачками. Дело тогда было в экране. Симулятор и реальная платформа просто по-разному кодировали цвет. |
|||
|
||||
Dancer |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
-------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
||||
|
|||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Проверил, точно такие же скачки. Прикрепленный файл в первом сообщении - это скрин с WTK (естественно, что проверял все это и на телефоне). Да, скорее всего так и есть. Еще проверю на телефоне с экраном 16М цветов, потом отпишу результат. Dancer, результат точно такой же :( Я уже другие способы (и с float и с эмуляцией float), результат всегда был один и тот же. |
|||
|
||||
DarK__AngeL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2007 Репутация: нет Всего: нет |
попробуй отрисовать рисунок 128*24.....думаю результат будет другим, т.к. высота всего 24 пикселя.....
|
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
А что мне это даст, если мне нужно целый экран зарисовать? Почему получается полосками, я знаю. Как решить проблему - нет.
Проверил, на Nokia 6131 (16М цветов) не идеально конечно, но скачков таких нет. |
||||
|
|||||
DarK__AngeL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2007 Репутация: нет Всего: нет |
сомневаюсь, что на обычных телефонах это получится реализовать.....лучше сделать тогда смешивание цветов, а не изменение яркости.....хотя я это на весь экран не отрисовывал, но рисунок 50*200 нормально получился....
|
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
||||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Рисовать по точкам, а не по строчкам, в каждой строчке использовать несколько цветов. Воспользуйся Graphics.getDisplayColor() чтобы определить какой цвет будет отображаться в действительности. Это сообщение отредактировал(а) math64 - 15.5.2008, 08:11 |
|||
|
||||
Dancer |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
-------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Вот смешивание начального и конечного цветов:
|
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Интересное решение, спасибо. (+1)
|
|||
|
||||
DarK__AngeL |
|
||||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2007 Репутация: нет Всего: нет |
увеличиваея значение красного, зеленого и синего, ты приближаешь цвет к 0xFFFFFF => увеличиваешь яркость......хотя, наверное, у мя о5 ассоциации с твоими не совпадают ![]() |
||||
|
|||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |