カスタムビューを作成しようとしており、以下のようなスタイル属性を宣言しています:-
<resources>
<declare-styleable name="NewCircleView">
<attr name="radius" format="integer"/>
<attr name="circlecolor" format="color"/>
</declare-styleable>
</resources>
customview のコンストラクターでは、これらの値は次のように取得されます。
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
ビューは、次のように xml を宣言することによって使用されます。
<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
/>
ペイントオブジェクトを次のように設定したときのカスタムビューで:-
thePaintObj.setColor(circlecolor);//circlecolor logs to an integer as expected
xml で定義されている「黒」という色を取得できません
ただし、色を次のように設定すると
thePaintObj.setColor(Color.GRAY)
ビューで色を取得します
誰かが私が間違っていることを教えてもらえますか?
(注:-さらにコードを投稿してほしい場合は、お知らせください)
EDIT1:-私のcolors.xmlを投稿しています。私のコードコメントでは明確ではないようです:-
<?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>