2012-06-24 26 views
0

可以說我有0xFF222222,並希望它在5分鐘內達到0xFF888888。 使用Java(android)什麼是最簡單的方法來改變它?在運行時更改一個十六進制字符串

RGB必須在整個停留相等,這意味着0xFF222222 - > 0xFF232323 - > 0xFF242424 ...

+0

或者我可以自己做,謝謝。我從來沒有必要在現在改變HEX值,除此之外,我在運行前定義了它。我知道如何隨時調用和跟蹤時間,我只是不知道如何在運行時編輯十六進制數字本身。 – WIllJBD

回答

1

使用一個定時器任務在每次執行添加取0x10101,直到你達到0xFF888888

機會是你實際上並不想要一個字符串,但是需要一個數字值,比如一個int - 儘管如果你確實需要一個字符串,很容易用int來完成工作,並且在需要時使用Integer.toHexString()來轉換結果。

+0

你是對的,我想我需要一個int,所以我可以做一個操作,比如'int i = 0xFF888888; int a = 0x101010;我=我+ a;'? – WIllJBD

+0

是的,大多數android顏色方法都需要int。您可能需要記住,作爲(簽名)的整數,這些數字都是負數 - 它們之間的比較應該仍然有效,所以只要您沒有假設它們是正數,它就不會有真正的影響。 –

+1

要轉換爲該格式,使用String.printf(「0x%08X」,value)而不是Integer.toHexString()(它不會生成前導零和8位有效數字)會更容易。 –

相關問題