theme - material design android
Archivos.xml de Android: ¿Por qué los colores predefinidos no funcionan para mí? (6)
¿Se agrega "colors.xml" a su carpeta res / values donde se definen estas constantes de color?
Cuando miro a misc. Tutoriales y ejemplos de Android cuando se trata de especificar colores, a menudo veo constantes como @color/red
o @color/black
etc. Por alguna extraña razón que NUNCA funciona para mí! Siempre necesito especificar colores usando la notación "#RGB", #ARGB, ..., #AARRGGBB.
Tan pronto como intento usar cualquiera de esas constantes mnemónicas, como por ejemplo "@ color / red", recibo mensajes de error como estos:
[...] C:/Users/mmo/Test/res/drawable/edit_text.xml:5: error: Error: No resource found that matches the given name (at ''drawable'' with value ''@color/orange'').
[...] C:/Users/mmo/Test/res/drawable/myDrawable.xml:3: error: Error: No resource found that matches the given name (at ''drawable'' with value ''@color/black'').
[...] C:/Users/mmo/Test/res/drawable/myDrawable.xml:4: error: Error: No resource found that matches the given name (at ''drawable'' with value ''@color/black'').
[...] C:/Users/mmo/Test/res/drawable/myDrawable.xml:5: error: Error: No resource found that matches the given name (at ''drawable'' with value ''@color/green'').
[...] C:/Users/mmo/Test/res/drawable/myDrawable.xml:6: error: Error: No resource found that matches the given name (at ''drawable'' with value ''@color/black'').
¿Por qué es así? ¿Por qué no puedo usar estas constantes predefinidas? ¿Debo prefijarlos con algún nombre de paquete (probé @android:color/red
pero eso solo causó un error diferente)? ¿Necesito especificar estos colores yo mismo? Si es así, ¿cómo y dónde? ¿Alguna idea o sugerencia?
Miguel
Asegúrese de que su archivo XML de color esté dentro de la carpeta de valores , no en una carpeta de colores .
Así que deberías haber ...
valores /colors.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<color name="red">#FF0000</color>
</resources>
y NO esto ...
color /colors.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<color name="red">#FF0000</color>
</selector>
Tenga en cuenta que la etiqueta es recursos , no selector .
Curiosamente, Android no proporciona una lista decente de colores. Y lo digo de forma extraña porque durante mis 30 años de carrera, este es el primer idioma que conocí que no hace eso. Y a pesar de eso, se basa en Java, que define los colores en todas sus bibliotecas básicas.
Los que están definidos tienen un prefijo para que no los encuentres :) Para encontrarlos (si usas eclipse) ve al documento xml donde necesitas el tipo de color android: background = "@ android: color / y haz un espacio Ctrl. En mi versión (actual como hablamos) tengo más de una docena, por ejemplo: holo_orange_dark
Entonces, usa eso o queja para que Google solucione este problema. Y lo llamo problema porque no tiene sentido obligar a todos los desarrolladores a describir manualmente todos los colores y valores.
El archivo XML de color está dentro de la carpeta de valores donde debe contener valores de color. Dentro de la etiqueta de recursos.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<color name="green">#00ff00</color>
Si desea utilizar los colores predefinidos en la plataforma Android, la sintaxis es @android: color / white. El "android:" al principio indica que el recurso no es parte de su aplicación.
Una parte importante de esto que nadie más ha mencionado es que la referencia al color debe ser
@color/black
pero el archivo xml tiene que ser
colors.xml
(note plural en el nombre del archivo xml pero no plural @color)