繁体   English   中英

Android绘制位图画布花费太长时间

[英]Android draw Bitmap canvas taking too long

我正在尝试使用canvas制作一个Android游戏,我知道这很糟糕,因为opengl更好,但是那时我并没有真正考虑过,现在我几乎完成了,我只想完成并转换稍后再打开。

因此,在我的onDraw开始时,我使用以下代码绘制位图:

Log.d("Start Time", System.nanoTime()/1000000 + "");
        canvas.drawBitmap(bitmaps.Background(), null, bg, paint);
        Log.d("After drawColor", System.nanoTime()/1000000 + "");

因此,如您所见,我基于矩形绘制位图,因此将其拉伸并绘制。 使用日志查看执行此操作需要多长时间,我发现绘制此位图大约需要15到20毫秒!

有人知道为什么会这样吗? 另外,如果有人知道从canvas切换到opengl的简单方法,那就太棒了:p

威廉

bgRect吗? 如果是这样,则可能需要在绘制位图之前对其进行缩放,这会浪费时间。 查看是否可以预缩放位图。

其次,您真的需要在drawBitmap调用中paint吗? 如果您不进行转换,则可以传递null

同样为什么不使用System.currentTimeMillis()而不是将纳秒除以毫秒呢?

我注意到bitmaps.Background()是一种方法; 是否有机会反复从资源文件中解压缩位图? 如果要在每个帧上绘制位图,则应将位图对象保留在内存中。 (仅在屏幕上绘制一个预先存在的Bitmap对象就不会花那么长时间。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM