【问题标题】:Setting primary color for Android Wear app为 Android Wear 应用设置原色
【发布时间】:2017-07-28 07:01:40
【问题描述】:

我正在创建一个 android wear 应用程序并尝试将其设置为原色。我创建和设置主题的方式与移动应用程序相同。除原色外,每个属性都已正确更改。它始终是 android 使用的默认蓝绿色。我在配套应用程序上使用相同的主题,它在那里工作。有什么我错过的东西在穿着上有所不同吗?有什么东西可以覆盖这个设置吗?

我已尝试将父主题更改为 material 或 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>

【问题讨论】:

    标签: android wear-os android-theme


    【解决方案1】:

    您需要使用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 上不需要或使用(Theme.DeviceDefault 在 Wear 设备上扩展 Theme.Material)。

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

    请注意,您不能根据this post 更改流中通知的背景颜色 - 但是,当用户点击通知时将使用notification color(假设您尚未设置内容意图 - 在这些情况下,它们只会进入您的应用程序)。

    【讨论】:

    • 我尝试了您的示例,但没有发现差异。我也尝试过使用parent="@android:style/Theme.Material",但都没有奏效。除了 colorPrimary 之外的所有颜色都有效。
    • colorPrimary 不会出现在任何内置小部件中,但它肯定可以通过?android:attr/colorPrimary 供您自己使用。您希望它出现在哪里?
    • 我正在查看 Android 开发者页面。 developer.android.com/training/material/theme.html 根据文档,它应该显示在工具栏中。它在移动版本中。我主要对更改通知颜色感兴趣,因为这应该一目了然地识别我的应用程序。如果我愿意,我可以手动设置 UI 的任何部分,但我假设它应该会影响动作抽屉,但事实并非如此。
    • 1. Android Wear 设备上没有工具栏。 2. Wear 2.0 上的信息流中的通知不会根据this post 显示您的颜色 - 只有当您点击时。 3.不行,android:background你自己设置。
    • 我猜该线程回答了我的问题。不过,actiondrawers 也不使用主题似乎很奇怪。我回到手动将背景设置为主题。我找到的所有文档仍然显示彩色通知,我仍然穿着 1.x,所以不确定 2.0 应该是什么样子。如果您想更改答案,我可以将其标记为已接受。在名称前添加android: 没有区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多