Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
#1

Задать фон view 16 битным цветом - Программирование Android

05.09.2016, 19:37. Просмотров 244. Ответов 11
Метки нет (Все метки)

Привет.
Как задать фон view переменной short?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2016, 19:37     Задать фон view 16 битным цветом
Посмотрите здесь:

Программно задать цвет фона для View - Программирование Android
Возникла проблема с установкой фона для View. Получаю цвет через класс Color Код: RelativeLayout rl; @Override protected void...

Как задать прозрачный фон? - Программирование Android
Использую прогресс бар горизонтальный и хочу его кастамизировать. Ниже код: <layer-list...

Text View issue - Программирование Android
Доброго дня всем. Объясните идиоту пожалуйста: Почему в это случае апп крашится: public class MainActivity extends AppCompatActivity...

Не отлавливается View.OnClickListener - Программирование Android
Написал следующий код, список появляется с элементами все работает. а вот на карточку внутри списка нажатие не хочет отрабатывать. еще...

Программное добавление View - Программирование Android
Доброго времени. Знаю что на эту тему много инфы, как на форуме так и на других ресурсах, но решения своей проблемы все же не нашел. суть...

Отображение собственного View - Программирование Android
как в xml файл для интерфейса активити добавить собственный элемент View?? Просто я указываю путь к этому классу производному от View в...

OnDown OnUp на View - Программирование Android
Привет. Мне дали задание сделать событие при клике на кнопку и событие отпускания пальца с кнопки. OnClick элементарно, все...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3138 / 1940 / 214
Регистрация: 13.01.2012
Сообщений: 7,427
06.09.2016, 08:28     Задать фон view 16 битным цветом #2
_Night_Scream_, привет. Как интерпретировать ваш тип в цвет?
ExFau$t
262 / 237 / 43
Регистрация: 08.05.2012
Сообщений: 1,278
06.09.2016, 10:05     Задать фон view 16 битным цветом #3
_Night_Scream_, я тоже не понял, попробуй использовать
Java
1
myColor = Color.argb(0, 255, 0, 255);
, последние три цифры бери граничные значения и получишь базовые цвета, если ты это имел в виду.
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
06.09.2016, 11:27  [ТС]     Задать фон view 16 битным цветом #4
vxg, ExFau$t, я хочу хранить цвет в 16 битной переменной. 16 битный цвет называется HighColor (вычитал из википедии)

Тут надо задать 4 байта
Java
1
Color.argb(0, 255, 0, 255);
Тут надо задать 3 байта
Java
1
Color.rgb(255, 0, 255);
А у меня всего 2 байта.
Pablito
2452 / 1897 / 590
Регистрация: 12.05.2014
Сообщений: 6,698
Завершенные тесты: 1
06.09.2016, 11:36     Задать фон view 16 битным цветом #5
Цитата Сообщение от _Night_Scream_ Посмотреть сообщение
я хочу хранить цвет в 16 битной переменной
ну вот допустим есть метод, который будет возвращать цвет в виде 16 бит
просто интересно какого типа эта переменная в джаве?
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
06.09.2016, 11:39  [ТС]     Задать фон view 16 битным цветом #6
Паблито, short не? а может char лучше, до 65535.
да хоть в 2х байтах, хоть в 16 булах, это уже не очень важно.

как из 32 получить 16 тут есть
а как обратно не знаю.

вот wiki
vxg
Модератор
3138 / 1940 / 214
Регистрация: 13.01.2012
Сообщений: 7,427
06.09.2016, 15:04     Задать фон view 16 битным цветом #7
_Night_Scream_, непонятно кто тут кому и что объясняет)
задать фон можно через setBackgroundColor. просто подайте ему то что он хочет полученное из того что у вас есть
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
06.09.2016, 15:15  [ТС]     Задать фон view 16 битным цветом #8
vxg, я пытаюсь объяснить что setBackgroundColor принимает int (он 32 битный)
а у меня переменная должна быть 16 битная, тоесть значений всего 65536
Как правильно перевести из 32 в 16 битный цвет и обратно не понимаю.
ExFau$t
262 / 237 / 43
Регистрация: 08.05.2012
Сообщений: 1,278
06.09.2016, 15:25     Задать фон view 16 битным цветом #9
Цитата Сообщение от _Night_Scream_ Посмотреть сообщение
Тут надо задать 3 байта
Color.rgb(255, 0, 255);
тут надо задать числовой код цвета, от 0 до 255, красный, синий и зеленый, кол-во комбинаций этих цветов определяй сам. Я, например, когда писал приложение в стиле dark исключал все тёмные цвета, то есть выдавал красный и зелёный максимум 230, вместо 255 (утрирую, не помню точно). А как пользователь определить битность твоих цветов?
vxg
Модератор
3138 / 1940 / 214
Регистрация: 13.01.2012
Сообщений: 7,427
06.09.2016, 15:39     Задать фон view 16 битным цветом #10
_Night_Scream_, по той ссылке что вы дали весьма необычный 16-битный цвет - у него есть альфа-канал. в традиционном 16-битном цвете таких изысков нет (https://ru.wikipedia.org/wiki/%D0%93...B5%D1%82%D0%B0). поэтому уточните что же у вас за цвет
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 584
06.09.2016, 15:59  [ТС]     Задать фон view 16 битным цветом #11
vxg, альфа канал не нужен
16-битный цвет использует 5 бит для представления красной составляющей, 5 для синей, но 6 бит (26 = 64 возможных значения) для представления зелёной, так как человеческий глаз более чувствителен к зелёной составляющей. Таким образом получаются 65 536 (32×64×32) цветов

5 красного, 5 синего и 6 зеленого, думаю так.

ExFau$t, пользователю будет дана вспомогательная библиотека, которая поможет выбрать нужный цвет, у меня не обычные пользователи.

Кому интересно расскажу для чего такие извращения.
Есть промышленный протокол modbus, там регистры размером в 16 бит (2 байта) для обмена с контроллерами.
Контроллер будет задавать цвет через один регистр modbus, такая вот задача))

Добавлено через 11 минут
Кажется въезжаю как сделать.
Есть 16 битное число.
первые 5 бит вытащить и сохранить в int red;
следующие 6 бит вытащить и сохранить в int green;
и последние 5 бит вытащить и сохранить в int blue;

Потом Color.rgb(red, green, blue);
Осталось понять как наименьшими усилиями вытащить эти биты.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2016, 16:34     Задать фон view 16 битным цветом
Еще ссылки по теме:

Передать dialogInterface во View - Программирование Android
В AlertDialog через setView устанавливаю форму с полями. Нужно по нажатию кнопки при правильно заполненной форме закрыть диалог, а при...

Скопировать свойства view - Программирование Android
Здравствуйте, у меня есть view tvName = (TextView) convertView.findViewById(R.id.tvName); Мне нужно программно создать еще один view и...

Рисование в элементе view - Программирование Android
Можно ли использовать canvas внутри какого-либо view? Находил примеры, когда можно рисовать примитивы на всём экране, при этом нельзя...

Добавить view runTime - Программирование Android
Здравствуйте, у меня есть listView, мне нужно например в первый item добавить два textview, а во второй 4, это нужно делать runtime,...

Gallery and custom view - Программирование Android
Пытаюсь разобраться с функционалом Gallery. Несмотря на то, что документация твердит, что возможно добавление своих кастомных вью, т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vxg
Модератор
3138 / 1940 / 214
Регистрация: 13.01.2012
Сообщений: 7,427
06.09.2016, 16:34     Задать фон view 16 битным цветом #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
_Night_Scream_, можно так
Java
1
2
3
4
int c16 = нечто_из_контроллера;
int r = c16 & 0x1F;
int g = (c16 & 0x7E0) >> 5;
int b = (c16 & 0xF800) >> 11;
почему не short? что бы проблем не было)

Добавлено через 5 минут
Java
1
2
3
4
5
6
ByteBuffer bb = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
byte[] _data = new byte[4];
//принимаем _data[0] и _data[1] - в _data[2] и _data[3] кладем нули
bb.position(0);
bb.put(_data).position(0);
int data = bb.getInt();
Добавлено через 2 минуты
...хотя мне кажется когда придут одни единицы может быть что-то не то при сдвигах из-за знаков

Добавлено через 14 секунд
...а может и нет)
Yandex
Объявления
06.09.2016, 16:34     Задать фон view 16 битным цветом
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru