在Live Wallpaper中的画布上绘制和删除圆形/位图



链接到我之前在Live Wallpaper上移动圆圈的问题。我每次都在移动一个带有新位图的圆圈,在新位置上画一个圆圈,即(x,y)。但在我看来,这不是一个好的方法,所以我想有可能删除在实时壁纸画布上绘制的圆圈/位图吗

如果是,请分享一些代码/链接。

如果遇到性能问题,此时代码中。。。

BitmapFactory.Options options = new BitmapFactory.Options();
            options.inPurgeable = true;
            bitmap = BitmapFactory.decodeResource(getResources(),
                    R.drawable.aquarium, options);

您正在对每帧的位图进行解码。这是昂贵的,应该避免。

相反,在位图中读取一次,然后使用它在每帧绘制到画布上。

同样,您应该尽量不要在绘制循环中实例化任何内容。你在那里创建的所有东西都必须是垃圾收集的,这会减慢速度。任何对象都会尝试在绘制循环之外实例化。因此,您可以做的另一件事是让它执行得更快一点,那就是在构造函数中这样做:

Paint paint = new Paint();

最新更新