如何将选择器添加到自定义视图?

时间:2013-12-09 08:37:05

标签: android android-custom-view android-drawable android-selector

我创建了一个自定义视图并将选择器添加到我的自定义视图中。选择器工作,但背景拉伸全宽和高。背景必须显示我绘制的内容。 完整代码http://pastebin.com/dmF6DiP8

@Override
protected void onDraw(Canvas canvas)
{
    Log.d(TAG, "init onDraw");
    if (canvas != null && mDrawable != null)
    {
        mDrawable.setState(getDrawableState());

        canvas.drawCircle(mWidth / 2, mHeight / 2, mRadius, mBackgroundPaint);

        mDrawable.draw(canvas);
    }
}

现在正常状态:

Now normal state

现在按下状态:

Now pressed state

必须:

Must be

1 个答案:

答案 0 :(得分:0)

您正在做的是首先绘制圆形,然后在其上绘制您的绘图。圆圈位于drawable下方,因此您无法看到它。圆圈也是每次都用相同的颜色绘制的,根本不是从绘图中取出来的。

您需要做的是根据选择器状态将颜色应用于圆圈,然后移除调用以在画布上绘制drawable。