【发布时间】:2016-07-12 04:25:20
【问题描述】:
在我的 XML 元素中,我尝试通过 colors.xml 资源文件中的颜色。 getColor 函数总是返回 defValue,即使它应该返回 colors.xml 中给出的颜色。
代码
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.accordion);
final int col_pressed = a.getColor(R.styleable.accordion_buttonColorPressed, Color.BLACK);
final int col_unpressed = a.getColor(R.styleable.accordion_buttonColorPressed, Color.YELLOW);
btn.setBackgroundColor(col_unpressed);
主要 XML
<mika.actual.AccordionWidget
xmlns:accordion="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
accordion:text_color="@color/text_color"
accordion:buttonColorPressed="@color/button_pressed"
accordion:buttonColorUnpressed="@color/button_not_pressed"
android:background="#FFFFFFFF"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"> ... </mika.actual.AccordionWidget>
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="text_color">#FFFFFF</color>
<color name="button_pressed">#666666</color>
<color name="button_not_pressed">#BBBBBB</color>
</resources>
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="accordion">
<attr name="text_color" format="color"/>
<attr name="buttonColorPressed" format="color"/>
<attr name="buttonColorUnpressed" format="color"/>
</declare-styleable>
</resources>
【问题讨论】:
-
您是否尝试转储
attrs? (使用getAttributeCountgetAttributeName和getAttributeValue
标签: java android xml android-layout