2017-07-27 79 views
1

我正在創建一個android Wear應用,並試圖將其設置爲原色。我以與移動應用程序相同的方式創建和設置主題。除了原色以外,每個屬性都可以正確更改。它將始終是android使用的默認藍綠色。我在伴侶應用上使用了相同的主題,並且在那裏工作。有什麼我錯過了穿着不同的做法嗎?有什麼可以覆蓋這個設置嗎?爲Android Wear應用設置原色

我已經嘗試將父主題更改爲材質或Compact.app。

Android清單:

<application 
    android:name="com.turndapage.navmedia.App" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.Nav"> 

styles.xml

<resources> 
<style name="Theme.Nav" parent="@android:style/Theme.DeviceDefault"> 
    <!-- your app branding color for the app bar --> 
    <item name="colorPrimary">@color/primary</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <!-- theme UI controls like checkboxes and text fields --> 
    <item name="colorAccent">@color/accent</item> 
    <item name="android:colorForeground">@color/primary</item> 
    <item name="android:colorBackground">@color/Viewport_Background</item> 
</style> 

colors.xml

<resources> 
<color name="primary">#8c6354</color> 
<color name="Viewport_Background">#4d362e</color> 
<color name="primary_dark">#66483d</color> 
<color name="Action">#a67563</color> 
<color name="accent">#a1887f</color> 
<color name="Background_Shaded">#000000</color> 
<color name="background">#000000</color> 
<color name="digital_text">#ffffff</color> 

回答

0

您需要使用android:前綴版本:

<style name="Theme.Nav" parent="@android:style/Theme.DeviceDefault"> 
    <!-- your app branding color for the app bar --> 
    <item name="android:colorPrimary">@color/primary</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="android:colorPrimaryDark">@color/primary_dark</item> 
    <!-- theme UI controls like checkboxes and text fields --> 
    <item name="android:colorAccent">@color/accent</item> 
    <item name="android:colorForeground">@color/primary</item> 
    <item name="android:colorBackground">@color/Viewport_Background</item> 
</style> 

非命名空間verisons由程序兼容性,這是不需要的或Android Wear使用(Theme.DeviceDefault延伸Theme.Material上Wear設備)使用。

默認情況下,colorPrimary未在任何表面中使用,因此您仍然需要通過?android:attr/colorPrimary手動將其引用爲視圖的背景。

請注意,您不能根據this post更改流中通知的背景顏色 - 但是,當用戶點擊通知時會使用notification color(假設您尚未設置內容意圖 - 在這些情況下,他們只會進入你的應用程序)。

+0

我試過你的例子,我沒有看到區別。我也嘗試使用'parent =「@ android:style/Theme.Material」'但都沒有成功。每種顏色,但colorPrimary正在工作。 –

+0

'colorPrimary'沒有出現在任何內置的小部件中,但它肯定可以通過'?android:attr/colorPrimary'使用。你在哪裏期待它出現? – ianhanniballake

+0

我正在查看Android開發者頁面。 https://developer.android.com/training/material/theme.html根據文檔,它應該顯示在工具欄中。它在移動版本中有效。我主要對改變通知顏色感興趣,因爲這應該一目瞭然地識別我的應用程序。如果需要,我可以手動設置UI的任何部分,但我認爲它應該會影響操作抽屜,但事實並非如此。 –