2011-11-22 40 views
15

Tôi nhận được lỗi trên khi tôi cố gắng để chạy các đoạn mã sau: giá trị thập lục phânAndroid: java.lang.IllegalArgumentException: Unknown màu

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

Các vi phạm là ee3090b0. Có cách nào tôi có thể chuyển đổi một giá trị hexdecimal màu thành số nguyên tương đương của nó và vẫn giữ lại giá trị alpha? Tôi đã thử sau đây là một gợi ý thực hiện trong post này, nhưng nó không làm việc ...

+0

Loại biến 'màu' là gì? –

+1

Một đối tượng tùy chỉnh được gọi là Màu. – MissPiplup

+1

Nó chỉ ra rằng tôi quên bao gồm # ở phía trước của chuỗi thập lục phân. Vì vậy, tôi đã vượt qua "ee3090b0" thay vì "# ee3090b0". – MissPiplup

Trả lời

39

Từ documentation:

public static int parseColor (String colorString)

Phân tích các màu chuỗi và trả về màu tương ứng-int. Nếu không thể phân tích cú pháp chuỗi , hãy ném ra một ngoại lệ IllegalArgumentException. Định dạng được hỗ trợ là: #RRGGBB #AARRGGBB 'đỏ', 'xanh', 'xanh', 'đen', 'trắng', 'xám', 'lục lam', 'đỏ tươi', 'vàng', 'lightgray', 'darkgray'

Phương pháp của bạn có thể trả về chuỗi không bắt đầu bằng #.

+3

điều này có thể xảy ra, nếu có chứa dấu cách hoặc dòng mới trong chuỗi mã màu của bạn. do đó, chỉ cần cắt chuỗi colorcode. ví dụ: - colorcode.trim(); – jaleel

+0

nó muốn có một chuỗi dài 6 ký tự. Tôi nghĩ rằng nó ném một ngoại lệ trên 8 ký tự (hoặc bất cứ điều gì khác hơn 6) – msecilmis

Các vấn đề liên quan