2012-01-10 26 views
5

Theo tài liệu android, android: startColor có thể mất các thuộc tính như một giá trị:Làm thế nào để thêm một thuộc tính chủ đề cho android: startColor trong gradient drawable trong Android?

này cũng có thể là một tham chiếu đến một tài nguyên (theo mẫu "@ [gói:] loại: name") hoặc chủ đề thuộc tính (trong mẫu "? [gói:] [loại:] tên") có chứa một giá trị thuộc loại này.

Tôi đang cố thêm thuộc tính vào mức có thể vẽ được tốt hơn, tuy nhiên tôi gặp lỗi. Đây là mã cho drawable:

Đây là mã trong style.xml:

<style name="test" parent="android:Theme"> 
    <item name="android:startColor">#0b2749</item> 
    <item name="startColor">#0b2749</item> 
</style> 

Khi tôi cố gắng để chạy các hoạt động tôi nhận được thông báo lỗi này:

01-10 20:47:30.810: E/AndroidRuntime(7279): Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 

Tôi đã thử thay đổi? StartColor to? Attr/startColor và vẫn gặp lỗi tương tự. Tôi cũng đã áp dụng chủ đề cho hoạt động trong tệp AndroidManifest.xml.

Làm cách nào để thêm thuộc tính chủ đề vào gradient có thể vẽ?

+0

Cùng một vấn đề ở đây với android: màu trên phần tử đột quỵ. Trong thực tế, có vẻ như ngoại lệ này xảy ra mỗi lần chúng tôi cố gắng tham chiếu thuộc tính kiểu từ một đối tượng có thể vẽ được. Điều này trông giống như một lỗi Android. – Guillaume

+0

Tôi tìm thấy giải pháp thay thế có thể phù hợp với bạn, xem câu trả lời của tôi – Guillaume

Trả lời

-1

Có vẻ như bạn vừa phạm một sai lầm nhỏ cho màu của mình. Android lấy loại đầu vào #[alpha] [hex] cho màu sắc. Bạn chỉ cần cung cấp phần hex. Android không hỗ trợ điều này, do đó, UnsupportedOperationException.

Hãy thử sử dụng này:

<item name="android:startColor">#FF0b2749</item>

tôi không thể đảm bảo rằng các công trình này mặc dù, như tôi chưa bao giờ làm việc với gradient kết hợp với một phong cách.

+0

Trên thực tế, android hỗ trợ màu không có giá trị alpha. Theo cùng một tài liệu: Phải là một giá trị màu, dưới dạng "#rgb", "#argb", "#rrggbb" hoặc "#aarrggbb". –

+0

Hmm. Bạn càng biết nhiều. Đã có vấn đề với điều này một thời gian trước đây cho đến khi tôi thêm alpha nhưng tốt để biết nó hoạt động mà không có. –

+0

Điều đó không giải quyết được vấn đề, mặc dù: có hoặc không có giá trị alpha, cùng một ngoại lệ xảy ra – Guillaume

0
<style name="customTheme" parent="android:Theme"> 
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item> 
</style> 

Thêm mã trên trong colors.xml trong thư mục các giá trị và đoạn mã sau vào styles.xml

<color name="titlebackgroundcolor">#FFFFFF</color> 
<color name="titletextcolor">#000000</color> 
+0

Mã không rõ ràng. Bạn vui lòng định dạng nó để tôi có thể kiểm tra nó. –

+0

Chỉ cần thêm < and > thẻ ở phong cách và mục, tôi không thể đặt nó như nó đã làm cho văn bản vô hình –

+0

Thêm mã trên trong colors.xml trong thư mục các giá trị và đoạn mã sau vào styles.xml #FFFFFF # 000000 –

3

Tôi đã có cùng một vấn đề thuộc một trong drawable của tôi trong đó tôi muốn màu sắc khác nhau dựa trên chủ đề đã chọn. Tôi tìm thấy một cách giải quyết, điều đó không chính xác giải quyết vấn đề, nhưng làm việc cho tôi. Thay vì xác định màu theo kiểu của tôi, tôi xác định toàn bộ có thể vẽ như một tham chiếu.

Trong attrs.xml:

<resources> 
    <attr name="myDrawable" format="reference"/> 
<resources> 

Và trong style.xml tôi:

<style name="style1"> 
    <item name="myDrawable">@drawable/myDrawable1</item> 
<style> 
<style name="style2"> 
    <item name="myDrawable">@drawable/myDrawable2</item> 
<style> 

Tất nhiên, bạn cần phải xác định hai drawables trong thư mục drawable của bạn, myDrawable1myDrawable2, mỗi người có màu sắc chính xác mã hóa cứng.

Và nó hoạt động tốt.

+0

Cảm ơn bạn. Tôi nhận thức được giải pháp này, và lý do tôi muốn giải quyết thông qua các thuộc tính để giảm số lượng drawables mà tôi có trong ứng dụng của tôi để giữ cho nó có thể quản lý được vì chúng đã quá nhiều. –

+0

Vâng tôi có cùng một mối quan tâm, đó là lý do tại sao tôi gọi đó là một giải pháp duy nhất. Tôi vẫn quan tâm đến việc tìm kiếm một giải pháp thực sự, mặc dù tôi bắt đầu nghi ngờ có một, có vẻ như nhiều hơn và nhiều hơn nữa giống như một lỗi Android, hoặc tính năng ... – Guillaume

+0

Ngoài ra, thực tế là chúng tôi không thể có thư mục con trong drawable thư mục là một cơn đau cho các dự án trung bình đến lớn (tôi có 5000 mục trong một dự án của tôi ...) – Guillaume

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