Пользовательские цвета не распознаются для Wear OS

Я разрабатываю приложение для износа в студии Android. Я определил свои цвета в

res-> color-> colors.xml ( Вот моя структура папки )

Когда я открываю новый проект для телефона или планшета, студия Android помещает файл colors.xml в папку значений. Но на этот раз для проекта Wear Android студия создала новую папку под названием color и автоматически поместила в нее файл colors.xml.

Дело в том, что я не могу использовать цвета, определенные в файле colors.xml для проекта износа.

colors.mxl

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<color android:name="colorPrimary">#006064</color>
<color android:name="colorPrimaryDark">#004c40</color>
<color android:name="colorAccent">#82b1ff</color>
<color android:name="black_alpha_40">#66000000</color>

</selector>

activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.wear.widget.BoxInsetLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dark_grey"
android:padding="@dimen/box_inset_layout_padding"
tools:context=".activities.LoginActivity"
tools:deviceIds="wear">


    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="5dp"
        app:boxedEdges="all">
    <EditText
        android:id="@+id/loginEmailEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Email"
        android:inputType="textEmailAddress"
        android:layout_gravity="top"
        />

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="top"
            android:src="@drawable/logo"
            android:tint="@color/colorAccent" --->THERE IS AN ERROR HERE
            />
    </FrameLayout>

    <EditText
        android:id="@+id/loginPasswordEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Parola"
        android:inputType="textPassword"
        android:layout_gravity="center"/>

    <ImageButton
        android:id="@+id/loginButton"
        android:background="@drawable/circular_button"
        android:layout_height="50dp"
        android:layout_width="50dp"
        android:src="@drawable/done_white"
        android:text="Giriş"
        android:onClick="attemptLogin"
        android:layout_gravity="bottom|center"/>
</FrameLayout>
</android.support.wear.widget.BoxInsetLayout>

Когда я хочу использовать их в моем файле activity_login.xml, ни один из настраиваемых цветов (colorPrimary, colorPrimaryDark и т. Д.) Не распознается, и студия Android выдает следующую ошибку.

ошибка: ресурс color / colorAccent (он же com.muhendis.diabetwatch: color / colorAccent) не найден. Сообщение {kind = ERROR, text = error: resource color / colorAccent (aka com.muhendis.diabetwatch: color / colorAccent) не найдено., Sources = [/ Users / muhendis / Documents / AndroidStudioProjects / DiabetWatch / app / src / main / res / layout / activity_login.xml: 32], исходное сообщение =, имя инструмента = Optional.of (AAPT)}

Итак, мой вопрос: как избавиться от этой ошибки и определить собственные цвета при разработке приложения для ношения?

РЕДАКТИРОВАТЬ

Это colors.xml, а не colors.mxl. Я написала с ошибкой.


person Fatih    schedule 10.06.2018    source источник


Ответы (1)


У вас есть пара видимых ошибок. Непонятно, сколько их в вашем коде, а сколько просто в вашем вопросе SO, но исправьте это, и я уверен, что это сработает:

  1. Вы однажды назвали файл colors.**mxl**. Правописание имеет значение!
  2. Он должен быть в res\values, а не в res\color
person String    schedule 11.06.2018
comment
Спасибо за Ваш ответ. colors.mxl - это моя проблема, я ошибся, когда спрашивал. Редактировал вопрос. Дело в том, что когда вы пытаетесь добавить файл ресурсов и выбираете цвет (щелкните правой кнопкой мыши res - ›New -› Файл ресурсов Android - ›Тип ресурса: Цвет, Имя файла: colors.xml) Android Studio добавляет colors.xml в каталог цветов в res автоматически. (res- ›color-› colors.xml) Я не знаю, почему Android Studio добавляет это, хотя это не распознается в макетах. Добавление в res \ values ​​работает. Спасибо. - person Fatih; 12.06.2018
comment
Это потому, что это не файл цветовых ресурсов. Его корневым элементом XML является resources, что означает, что файл может содержать несколько элементов, которые являются значениями ресурсов, заданными их отдельными элементами XML. Итак, он попадает в подкаталог values. Другие файлы ресурсов содержат один элемент, указанный в его пути, например res\color\my_dynamic_color.xml. - person String; 12.06.2018
comment
Теперь я понял разницу. @String Ты идеален, спасибо :) - person Fatih; 12.06.2018