java - Android 绘制位图 Canvas 花费太长时间

标签 java android android-canvas

我正在尝试使用canvas制作一个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 + "");

所以,正如你所看到的,我根据矩形绘制位图,因此它被拉伸(stretch)和绘制。使用日志查看执行此操作需要多长时间,我发现仅绘制这一张位图就花费了大约 15 到 20 毫秒!

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

威廉

最佳答案

bgRect 吗?如果是这样,则在绘制之前可能必须缩放位图,这会消耗时间。看看是否可以预先缩放位图。

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

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

关于java - Android 绘制位图 Canvas 花费太长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380591/

相关文章:

java - 数组列表操作

java - 如何在 java 中转换泛型列表类型?

java - Java中的继承和多态

java - 如何获取系统时区配置

Android 自定义 xml 小部件

android - Canvas 绘制比原始图片小的位图

java - Android apk 即使在模拟器上也无法打开

java - 获取ListView高度

android - 如何在 android 的自定义 View 的 Canvas 上绘制段落

android canvas 绘制圆圈并获取触摸事件