Ustawianie koloru obiektu Paint w widoku niestandardowym
Próbuję utworzyć niestandardowy widok i zadeklarowałem atrybuty stylizowane, takie jak poniżej: -
<resources>
<declare-styleable name="NewCircleView">
<attr name="radius" format="integer"/>
<attr name="circlecolor" format="color"/>
</declare-styleable>
</resources>
w konstruktorze customview wartości te są uzyskiwane jak poniżej: -
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
Widok jest używany przez zadeklarowanie xml jak poniżej: -
<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
/>
W widoku niestandardowym, kiedy ustawiam obiekt farby jako: -
thePaintObj.setColor(circlecolor);//circlecolor logs to an integer as expected
Nie mam koloru „czarnego” zdefiniowanego w pliku XML
jednak kiedy ustawię kolor jako
thePaintObj.setColor(Color.GRAY)
Dostaję kolor w widoku
Czy ktoś może mi powiedzieć, co robię źle?
(N.B: Jeśli chcesz, żebym opublikował więcej kodu, daj mi znać)
EDIT1: - Publikowanie mojego pliku colors.xml. Wygląda na to, że w komentarzach do kodu nie jest jasne: -
<?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>