我创建了一个要在操作栏中显示的自定义视图。它主要是有效的,除了有时在开始我看到我绘制的任何镜像副本。副本与原始副本重叠,但距离几个像素。
我的onDraw()
覆盖非常简单。它只是绘制一个以画布为中心的图像。
我有点困惑。我是否希望先在onDraw()
方法中清除画布?提前感谢您的帮助。
答案 0 :(得分:0)
这很令人困惑,但您会注意到自定义视图示例(sdk附带),onDraw()
method首先调用canvas.drawColor()
。
我认为它不是自动完成的,因为在你绘制的内容无论如何都会填满整个视图的情况下会浪费。我希望更清楚的是,在大多数情况下这是必要的。
答案 1 :(得分:0)
以下是我发现其他人可能觉得有用的内容。如果使用setBackground()设置背景,框架实际上会在调用onDraw()之前绘制背景。此背景绘制在中心。我也是在onDraw()中绘制背景但我从左上角绘制它。因此,我看到了鬼影。
正如Krylez所说,你可能希望将drawColor()作为你在onDraw()中的第一个调用。
我所做的是覆盖setBackground()及其变体,并将背景位图存储在局部变量中。
的问候,
彼得