2017-07-27 81 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的任何部分,但我认为它应该会影响操作抽屉,但事实并非如此。 –