2016-02-06 34 views
8

Tôi đã xác định hai chủ đề với màu chính, màu tối chính, ánh sáng chính và màu nhấn.Android: cách sử dụng màu của chủ đề hiện tại trong xml có thể vẽ?

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/accent</item> 
</style> 

<style name="AppTheme2" parent="AppTheme"> 
    <item name="colorPrimary">@color/primary_2</item> 
    <item name="colorPrimaryDark">@color/primary_dark_2</item> 
    <item name="colorAccent">@color/accent_2</item> 
</style> 

AppTheme là mặc định cho <application/> Sau đó tôi đặt AppTheme2 vào các hoạt động cụ thể.

Trong một tập tin xml drawable Tôi đang sử dụng các màu cơ bản cùng một AppTheme quy định tại colors.xml

Các drawable được sử dụng trong nhiều hoạt động của cả hai chủ đề, vì vậy khi có AppTheme2 tôi thấy các màu sắc khác nhau. Có cách nào để sử dụng dễ dàng các màu của chủ đề hiện tại cho hoạt động hiện tại không?

Trả lời

16

Bạn có thể sử dụng thuộc tính này để có được màu sắc từ theme hiện đang được sử dụng:

android:color="?colorPrimary" 

Điều này có thể chỉ trong Android 5.0 hoặc cao hơn.

+1

có cách nào để thực hiện việc này trong Android 4 không? hay tôi phải làm điều này một cách chuyên nghiệp? –

+0

trông giống như vậy ... https://developer.android.com/training/material/compatibility.html –

+1

thật đáng tiếc là nó không hoạt động cho dự án xamarin của tôi, sau khi thay đổi gradle tôi nhận được ngoại lệ lạ –

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