为Android Wear应用设置主要颜色

时间:2017-07-27 20:56:48

标签: android wear-os android-theme

我正在创建一个Android服装应用程序,并试图设置它的主要颜色。我创建和设置主题的方式与移动应用程序相同。除主要颜色外,每个属性都会正确更改。它将永远是android使用的默认蓝绿色。我在配套应用程序上使用相同的主题,它在那里工作。是否有一些我缺少的东西穿着不同?有什么东西可以覆盖这个设置吗?

我尝试将父主题更改为material或Compact.app。

Android Manifest:

    <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>

1 个答案:

答案 0 :(得分: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>

AppCompat使用非命名空间的验证,Android Wear上不需要或使用它(在Wear设备上Theme.DeviceDefault扩展Theme.Material)。

默认情况下,colorPrimary未在任何曲面中使用,因此您仍然需要通过?android:attr/colorPrimary手动引用它作为视图的背景。

请注意,您无法按照this post更改流中通知的背景颜色 - 但是,当用户点按通知时,系统会使用notification color(假设您还没有设置内容意图 - 在这些情况下,他们只会进入您的应用程序。)