自定义视图仅重绘一次,然后调用onDraw但不更新屏幕

时间:2013-12-24 17:05:51

标签: android view

我有一个View子类,它调用onDraw,但屏幕不会立即更新。

请注意,当我将我的应用设置为兼容性SDK (Target SDK Api Level 8)时,它可以正常工作。目标SDK 14它永远不会得到更新。

调用onDraw,但它就像是绘制到接收器。

可能出现什么问题?

编辑:我看到它实际上是用于绘图的GLES20Recording画布,但这并不能解释为什么它不会重绘。当我将视图设置为软件渲染模式时,它会绘制。

3 个答案:

答案 0 :(得分:1)

我找到了解决方案,视图必须是软件加速的。

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

愚蠢,但它确实有效。

答案 1 :(得分:0)

要强制绘制视图,请致电invalidate()postInvalidate()。这可以在任何视图子类上完成。

答案 2 :(得分:0)

使用API​​ 14,您的应用程序是硬件加速的。你确定你是 在包含此drawPath代码的View上调用invalidate()?

由于