2012-06-24 4 views
0

Допустим, у меня есть 0xFF222222 и вы хотите, чтобы он достиг 0xFF888888 в течение 5 минут. Использование Java (android), что было бы самым простым способом изменить его?изменение шестнадцатеричной строки во время выполнения

RGB должны оставаться равными по всему, это означает 0xFF222222 -> 0xFF232323 -> 0xFF242424 ...

+0

Или я мог бы просто сделать это сам спасибо. Мне никогда не нужно было менять значение HEX и раньше, иначе я бы определил его перед запуском. Я знаю, как звонить и отслеживать время по мере того, как он истекает, я просто не знал, как отредактировать сам шестнадцатеричный номер во время выполнения. – WIllJBD

ответ

1

Используйте задание таймера для добавления 0x10101 на каждом исполнении, пока вы не достигнете 0xFF888888

Скорее всего, вы на самом деле не хотите строку, но числовое значение, такое как int, но если вам нужна строка, легко выполнить работу с int и использовать Integer.toHexString() для преобразования результата при необходимости.

+0

Вы правы, я думаю, что мне нужен int, поэтому я могу выполнить операцию типа int i = 0xFF888888; int a = 0x101010; i = i + a; '? – WIllJBD

+0

Да, большинство методов цвета android хотят int. Вы можете иметь в виду, что в качестве (подписанных) индексов эти цифры отрицательны - сравнение между ними должно продолжаться, поэтому оно не должно иметь никакого влияния, если вы не делаете никаких предположений, что они являются положительными. –

+1

Чтобы преобразовать в этот формат, было бы проще использовать 'String.printf (« 0x% 08X », значение)», а не Integer.toHexString() (который не будет генерировать ведущие нули 8 значащих цифр). –

Смежные вопросы