![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
Гость_Mihail |
|
|||
Unregistered |
Есть метод, меняющий определённый цвет на другой заданный.
Вот он:
Глюк состоит в следующем: Если установить цвет, у которого в составляющей RGB один байт цвета(синего, красного или зелёного) равен нулю, а другой нет - то цвет шрифта невозможно поменять. Пример глюкавого цвета: 0xFF008000; Первые два байта (FF) - устанавливают прозрачность цвета(в данном случае абсолютно непрозрачен). Вторые: красный канал (на мой взгляд не проблемный). Третие (зелёный канал): первый байт не равен 0, второй = 0 - именно он вызывает глюк не только в эмуляторе, но и на телефоне(я так думаю). Четвёртый - соответственно синий канал. В чём проблема??? |
|||
|
||||
Гость_Mihail |
|
|||
Unregistered |
Я ошибся - оно просто не может отобразить некоторые цвета.
Я выяснил почему, и у меня возник другой вопрос. Телефон может отображать лишь 65536 цветов, т.е. два байта на пиксел. У меня же идет 1 байт на прозрачность(можно не учитывать) и по по 3 байта цвета на пиксел, т.е. 16777216 цветов, что превышает цвета телефона. В результате этого телефон принимает цвет ближайший заданному. Принатый цвет не совпадает с заданным и мой метод начинает работать не так как надо. Итак, новый вопрос: Как узнать, какой цвет примет телефон вместо задаваемого, до принятия цвета телефоном? |
|||
|
||||
Guest |
|
|||
Unregistered |
Я сам во всём разобрался - необходимая мне функция относиться к классу Graphics.
Нужен метод getDisplayColor(int). Правда он возвращает цвет без учёта степени прозрачности(не обрабатывает первый байт числа), но за этим дело не станет. Ну вот и всё - тему можно закрывать. |
|||
|
||||
Dancer |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
drawRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height, boolean processAlpha)
Renders a series of device-independent RGB+transparency values in a specified region -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
|||
|
||||
MMA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 23.12.2005 Репутация: нет Всего: нет |
Это я - Guest и я же - Михаил.
Рисунок PNG занимает чуть меньше 4 килобайта, если хранить его массивом целых чисел, не разрастётся ли он до 25 килобайт? Хотя всё равно он это делает при смене цвета шрифта. |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |