我创建了一个自定义视图并将选择器添加到我的自定义视图中。选择器工作,但背景拉伸全宽和高。背景必须显示我绘制的内容。 完整代码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);
}
}
现在正常状态:
现在按下状态:
必须:
答案 0 :(得分:0)
您正在做的是首先绘制圆形,然后在其上绘制您的绘图。圆圈位于drawable下方,因此您无法看到它。圆圈也是每次都用相同的颜色绘制的,根本不是从绘图中取出来的。
您需要做的是根据选择器状态将颜色应用于圆圈,然后移除调用以在画布上绘制drawable。