2011-11-22 18 views
15

Dostaję powyższy błąd, gdy próbuję uruchomić następujący kod:Android: java.lang.IllegalArgumentException: Nieznany kolor

int colourInt = Color.parseColor(colour.getHexValue()); 

przestępstwa wartość szesnastkowa jest ee3090b0. Czy istnieje sposób, w jaki mogę przekonwertować wartość szesnastkową koloru na jej odpowiednik w postaci liczby całkowitej i nadal zachowuję wartość alfa? Próbowałem następujących sugestii poczynionych w tym post, ale to nie działa ...

+0

Jaki jest typ zmiennej "kolor"? –

+1

Niestandardowy obiekt o nazwie Kolor. – MissPiplup

+1

Okazuje się, że zapomniałem dodać # przed szesnastkowym ciągiem znaków. Tak więc przekazałem "ee3090b0" zamiast "# ee3090b0". – MissPiplup

Odpowiedz

39

Od documentation:

public static int parseColor (String colorString)

Przetwarza kolor ciąg i zwróć odpowiedni kolor-int. Jeśli ciąg znaków nie może być przeanalizowany, zgłasza wyjątek wyjątku IllegalArgumentException. Obsługiwane formaty to: #RRGGBB #AARRGGBB "czerwony", "niebieski", "zielony", "czarny", "biały", "szary", "cyjan", "magenta", "żółty", "jasno szary", „darkgray”

Twoja metoda prawdopodobnie zwraca ciąg znaków, który nie uruchamia się #.

+3

może się to zdarzyć, jeśli zawiera spację lub znak nowej linii w Twoim ciągu kolorów. więc po prostu przycinaj ciąg znaków colorcode. np .: - colorcode.trim(); – jaleel

+0

chce mieć ciąg znaków 6-znakowy. Myślę, że rzuca wyjątek na 8 znaków (lub cokolwiek innego niż 6) – msecilmis

Powiązane problemy