Ich versuche, einige allgemeine Farben für ein Programm festzulegen, das ich schreibe. Ich habe eine colors.xml-Datei erstellt und versuche, die Farben direkt aus der layout.xml-Datei zu referenzieren. Ich glaube, ich mache das richtig, aber es gibt mir den folgenden Fehler:
Color value '@colors/text_color' must start with #
Hier ist meine res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="background_color">#888888</color>
<color name="text_color">#00FFFF</color>
</resources>
Hier ist meine res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:text="@string/hello"
android:layout_height="wrap_content"
android:id="@+id/TextView01"
android:textColor="@colors/text_color"/>
</LinearLayout>
Ich habe mir einige Referenzen auf der Android-Entwicklerseite angesehen: Weitere Ressourcentypen: Farbe und diesen Code gefunden:
Beispiel: XML-Datei gespeichert unter res/values/colors.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<color name="translucent_red">#80ff0000</color>
</resources>
Dieser Anwendungscode ruft die Farbressource ab:
Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
Dieses Layout-XML wendet die Farbe auf ein Attribut an:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>
Ich denke, meine beiden XML-Dateien folgen diesem Beispiel ziemlich genau – der einzige Unterschied besteht jedoch darin, dass ich keinen Anwendungscode verwendet habe, um die Farbressource abzurufen. Ich glaube nicht, dass dies notwendig ist (aber es ist ein Unterschied.) Ich dachte, ich würde sehen, ob jemand ähnliche Probleme oder eine Lösung hat? oder ist das ein bug?
Ich habe letzte Woche alle meine Android-SDK-Dateien (und das Eclipse-Plugin) aktualisiert, daher glaube ich, dass sie die neuesten sind.