Android Canvas - 如何避免绘制静态内容?

时间:2016-01-25 22:45:27

标签: android canvas

我有一个自定义视图,我在onDraw上绘制了一些内容。

在每个onDraw我绘制背景(一些基本的三角形和圆形),然后我画每次绘制时看起来不同的东西。

我如何绘制背景(静态的东西)一次并保持原样?因为绘制背景似乎给GPU带来了很大的压力,因为其他动画似乎变慢了(抽屉拉出并波动动画)

我怎样才能避免不在每个onDraw上绘制它?

由于

2 个答案:

答案 0 :(得分:0)

使用位图。创建一个Bitmap对象,然后创建一个Canvas,将该Bitmap作为参数传递。在画布上绘制任何你想要的东西。该位图现在保存您的静态绘图。在onDraw函数中,首先将静态位图绘制到传递给onDraw的画布上。然后绘制动态数据。这实际上是一种很好的处理方式,因为绘制位图的速度相对较快。

答案 1 :(得分:0)

您可以有两个视图 - 一个视图将背景和其他视图保存在背景视图之上。

每次动画时,您都不会使保存背景的视图无效。

您可以使用FrameLayout将视图置于彼此之上。