具有样式定义的Custom View组件

时间:2011-10-29 15:27:35

标签: android

我很难为我的自定义组件(扩展View)指定一个名为Tailor的样式。不同于我在互联网上遇到的例子,我不是用XML实例化我的组件,而是用代码来实现它。这是我目前的情况:

attr.xml 文件:

<declare-styleable name="Tailor">
    <attr name="white_square" format="color" />
    <attr name="white_square_margin" format="color" />
</declare-styleable>

styles.xml 文件:

<style name="tailor_default">
    <item name="white_square">#FFF8C898</item>
    <item name="white_square_margin">#FFF8D8B8</item>
</style>

活动的片段,我在其中实例化我的Tailor类:

public class TestActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(new Tailor(this, R.style.tailor_default));
    }
}

Tailor 类:

public class Tailor extends View
{
    public Tailor(Context context, int style)
    {
        TypedArray values = context.obtainStyledAttributes(style, new int[] {R.styleable.Tailor_white_square, R.styleable.Tailor_white_square_margin});
        int whiteSquare = values.getColor(0, 0);
    }
}

上面的whiteSquare没有返回正确的值,而是返回默认值0。

我不确定我做错了什么。

0 个答案:

没有答案