如何设置自定义组件的样式?

时间:2015-07-08 20:31:27

标签: android declare-styleable

我有2个模块:
应用
     - layout.xml
     - styles.xml
     - attrs.xml

     - CustomComponent.java

在模块核心中有一个名为CustomComponent的自定义组件,我在 app 模块中使用该组件,我想在其中设置自定义样式,如下所示

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:customNS="http://schemas.android.com/apk/res-auto"
    ...
    <com.example.CustomComponent
        android:id="@+id/chart"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        customNS:chart_style="@style/MyCustomStyle"/>

</LinearLayout

styles.xml

<style name="MyCustomStyle">
    <item name="android:textColor">#efefef</item>
    <item name="android:background">#ffffff</item>
    <item name="android:text">This is my text</item>
</style>

attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="MyCustomStyle">
        <attr name="chart_style" format="reference"/>
    </declare-styleable>
</resources>

CustomComponent.java

public CustomComponent(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
    TypedArray ta = context.obtainStyledAttributes(attrs, new int[] {R.attr.chart_style});
    int[] attrss = {android.R.attr.textColor, android.R.attr.background, android.R.attr.text};
    **?????**
}

我想取得以下结果:

我设定风格后 customNS:chart_style = “@风格/ MyCustomStyle”
在CustomComponent中,我想找到这种风格,解析它并获得所有需要的值。

但是我找不到工作代码。

请问如何达到这样的结果?

0 个答案:

没有答案