2

我创建了一个自定义视图并将选择器添加到我的自定义视图中。选择器可以工作,但背景会拉伸整个宽度和高度。背景必须显示我画的东西。完整代码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);
    }
}

现在正常状态:

现在正常状态

现在按下状态:

现在按下状态

一定是:

一定是

4

1 回答 1

0

你正在做的是先画圆,然后在它上面画一个你的drawable。圆圈位于可绘制对象下方,因此您看不到它。圆圈也每次都用相同的颜色绘制,它根本没有从可绘制对象中取出。

您需要做的是根据选择器状态将颜色应用于圆圈,并删除在画布上绘制可绘制对象的调用。

于 2013-12-09T08:44:36.263 回答