Festlegen der Farbe eines Paint-Objekts in der benutzerdefinierten Ansicht
Ich versuche eine benutzerdefinierte Ansicht zu erstellen und habe die gestalteten Attribute wie folgt deklariert:
<resources>
<declare-styleable name="NewCircleView">
<attr name="radius" format="integer"/>
<attr name="circlecolor" format="color"/>
</declare-styleable>
</resources>
Im Konstruktor der benutzerdefinierten Ansicht werden diese Werte wie folgt erhalten:
circleradius=a.getInt(R.styleable.NewCircleView_radius, 0);//global var
circlecolor=a.getColor(R.styleable.NewCircleView_circlecolor, 0);//global var and a is the typed array
Die Ansicht wird verwendet, indem die XML wie folgt deklariert wird:
<com.customviews.NewCircleView
android:layout_below="@id/thetext"
android:layout_width="match_parent"
android:layout_height="fill_parent"
app:radius="10000"
app:circlecolor="@color/black"<!--this is defined in colors.xml
/>
In der benutzerdefinierten Ansicht, wenn ich das Malobjekt wie folgt einstelle:
thePaintObj.setColor(circlecolor);//circlecolor logs to an integer as expected
Ich bekomme nicht die in der XML definierte Farbe "Schwarz"
aber wenn ich die Farbe als einstelle
thePaintObj.setColor(Color.GRAY)
Ich bekomme die Farbe in der Ansicht
Kann mir jemand sagen, was ich falsch machen würde?
(NB: -Wenn Sie möchten, dass ich mehr Code poste, lassen Sie es mich bitte wissen)
EDIT1: - Posten meiner colors.xml. Sieht aus wie es in meinen Code-Kommentaren nicht klar ist: -
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#7f00</color>
<color name="blue">#770000ff</color>
<color name="green">#7700ff00</color>
<color name="yellow">#77ffff00</color>
<color name="black">#000000</color>
</resources>