0

我正在尝试使用画布制作一个 android 游戏,我知道这很糟糕,因为 opengl 更好,但我当时并没有真正考虑过,现在我几乎完成了它,我只想完成它并转换稍后将其用于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 毫秒!

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

威廉

4

2 回答 2

1

bg一个Rect?如果是这样,位图可能必须在绘制之前进行缩放,这会耗费时间。看看你是否可以预先缩放位图。

其次,你真的需要paintdrawBitmap通话中吗?null如果您不进行转换,则可以改为通过。

另外,为什么不使用System.currentTimeMillis()而不是划分纳秒来获得毫秒?

于 2012-07-08T05:30:28.210 回答
0

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

于 2012-07-11T04:14:50.723 回答