een Hex-string tijdens runtime wijzigen

Laten we zeggen dat ik 0xFF222222 heb en zou graag willen dat het over 5 minuten 0xFF888888 zou bereiken. Met behulp van Java (Android) wat zou de eenvoudigste manier zijn om het te veranderen?

RGB must stay equal throughout, meaning 0xFF222222 -> 0xFF232323 -> 0xFF242424 ...

0
Of ik zou het zelf wel kunnen bedanken. Ik hoefde nooit te veranderen en HEX-waarde eerder dan nu, anders dan wat ik het pre-runtime definieer. Ik weet hoe ik de tijd moet callen en traceren als deze verstrijkt, ik wist gewoon niet hoe ik het hexadecimummer zelf tijdens runtime moest bewerken.
toegevoegd de auteur WIllJBD, de bron

1 antwoord

Gebruik een timeropdracht om 0x10101 toe te voegen aan elke uitvoering totdat u 0xFF888888 bereikt

De kans is groot dat je eigenlijk geen string wilt, maar een numerieke waarde zoals een int - hoewel als je een string wilt, het gemakkelijk is om het werk met een int uit te voeren en integer.toHexString() te gebruiken om het resultaat te converteren als dat nodig is .

1
toegevoegd
Je hebt gelijk, ik denk dat ik wel een int wil, dus ik kan een bewerking doen zoals int i = 0xFF888888; int a = 0x101010; i = i + a; ?
toegevoegd de auteur WIllJBD, de bron
Om naar dat formaat te converteren, zou het gemakkelijker zijn om String.printf ("0x% 08X", waarde) te gebruiken in plaats van Integer.toHexString() (die geen voorloopnullen van 8 significante cijfers genereert).
toegevoegd de auteur Ted Hopp, de bron
Ja, de meeste androïde kleurmethoden willen een int. U mag er rekening mee houden dat deze getallen (allemaal) negatief zijn - vergelijkingen tussen hen moeten nog steeds werken, dus het zou niet echt een impact moeten hebben, zolang u niet veronderstelt dat ze positief zijn.
toegevoegd de auteur Chris Stratton, de bron