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

Android画布-如何避免绘制静态内容?,android,canvas,Android,Canvas,我有一个自定义视图,可以在onDraw上绘制一些东西 在每个onDraw上,我都画背景(一些基本的三角形和圆形),然后每次我都画一些看起来不同的东西 我怎样才能画一次背景(静态的东西),然后保持原样?因为绘制背景似乎会给GPU带来很大的压力,因为其他动画似乎会变慢(抽屉拉出和涟漪动画) 如何避免在每个onDraw上都不绘制它 谢谢使用位图。创建一个位图对象,然后创建一个画布,将该位图作为参数传入。在画布上画你想画的任何东西。该位图现在保存静态图形。在onDraw函数中,首先将静态位图绘制到传入o

我有一个自定义视图,可以在
onDraw
上绘制一些东西

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

我怎样才能画一次背景(静态的东西),然后保持原样?因为绘制背景似乎会给GPU带来很大的压力,因为其他动画似乎会变慢(抽屉拉出和涟漪动画)

如何避免在每个
onDraw
上都不绘制它


谢谢使用位图。创建一个位图对象,然后创建一个画布,将该位图作为参数传入。在画布上画你想画的任何东西。该位图现在保存静态图形。在onDraw函数中,首先将静态位图绘制到传入onDraw的画布上。然后绘制动态数据。这实际上是一种很好的方法,因为绘制位图相对较快。

您可以有两个视图-一个视图保存背景,另一个视图位于背景视图之上

您不会在每次执行动画时使保存背景的视图无效


您可以使用FrameLayout使视图彼此重叠。

谢谢:)还有一个问题。。。在自定义视图的onDraw方法上。。。前几个调用返回的高度不正确。。。我猜那只是因为布局还没有完成排序视图之类的东西?我该怎么解决呢?@Filipettrovic-你找到解决办法了吗?我正试图实现完全相同的目标。@Gabe Sechan-我正在使用你的方法,但是,我有以下问题:在全屏游戏中,背景将具有整个屏幕的大小。创建与整个屏幕大小相同的位图可能会导致OutOfMemory错误。你对此有什么建议吗?我正是这么做的,但是,我注意到如果我在背景视图上通过画布绘制很多东西,UI就会开始结巴。我只画了一次视图,我不会每次都使它无效。问题是这种口吃是持续的,即使视图只绘制一次。有什么解决办法吗?