我有一个自定义视图,我在onDraw
上绘制了一些内容。
在每个onDraw
我绘制背景(一些基本的三角形和圆形),然后我画每次绘制时看起来不同的东西。
我如何绘制背景(静态的东西)一次并保持原样?因为绘制背景似乎给GPU带来了很大的压力,因为其他动画似乎变慢了(抽屉拉出并波动动画)
我怎样才能避免不在每个onDraw
上绘制它?
由于
答案 0 :(得分:0)
使用位图。创建一个Bitmap对象,然后创建一个Canvas,将该Bitmap作为参数传递。在画布上绘制任何你想要的东西。该位图现在保存您的静态绘图。在onDraw函数中,首先将静态位图绘制到传递给onDraw的画布上。然后绘制动态数据。这实际上是一种很好的处理方式,因为绘制位图的速度相对较快。
答案 1 :(得分:0)
您可以有两个视图 - 一个视图将背景和其他视图保存在背景视图之上。
每次动画时,您都不会使保存背景的视图无效。
您可以使用FrameLayout将视图置于彼此之上。