当前位置: 代码迷 >> Android >> android 游戏开发 bit地图绘制效率有关问题
  详细解决方案

android 游戏开发 bit地图绘制效率有关问题

热度:44   发布时间:2016-05-01 11:22:10.0
android 游戏开发 bitmap绘制效率问题
把一张480*800 Bitmap(屏幕尺寸)绘制之后,帧数一下从60fps掉到不到40fps,请教该怎么办?
作为游戏的背景图片,这张大位图的绘制是必须的,可一旦绘制帧数就保不住
哪些游戏厂商的2D游戏是怎么处理这个问题的啊??

所用技术:surfaceview框架 图片绘制:bitmap+canvas。。。 

------解决方案--------------------
切成几块,只重画需要更新的地方。
------解决方案--------------------
使用硬件加速试试 : android:hardwareAccelerated="true"
------解决方案--------------------
打印看一下canvas.drawbitmap这个方法所消耗的时间,如果时间很短没有影响到
帧数的变化,那么就是你bitmap的处理有问题。如果这个时间很长,我也不知道怎么
解决了,用opengl应该会快点吧
------解决方案--------------------
尽量在绘制bitmap时不要用缩放,保持画面原来的大小
------解决方案--------------------
在网上看到关于图形加速方面的一些东西,感觉有点用,贴出来你看看有帮助没。
切换到硬件加速的2D图形能够有效改善性能?但是依然要通过以下推荐的方式来设计应用程序?以便有效的使用GPU? 
1. 减少应用程序中View对象的数量 系统绘制越多的View对象?就会越慢。这种情况也适用于软件呈现管道。减少View对象的有效方法之一就是优化UI。 
2. 避免过度绘图 在彼此的顶部不要绘制太多的层。因为删除View时要同时删除遮盖在该View对象之上所有其他的不透明的View对象。如果需要绘制几个图层?要尽量在上面采用合成模式?考虑把它们合并成一个层。一个好的规则是?每帧的像素数不要大于屏幕上像素数的2.5倍?以位图的透明点阵数来计算?。 
3. 不要在绘图方法中创建呈现对象 一个常见的错误时每次调用呈现方法时创建一个新的Paint对象或Path对象。这样就会强制频繁的运行垃圾回收?并且会绕过硬件管道中的缓存和优化。 
4. 不要经常的编辑形状 对于复杂的形状?如路径和圆?是使用纹理掩码来呈现的。每次创建或修改路径?硬件通道都要创建一个新的掩码?这样会消耗大量的资。

这个应该是GOOGLE开发者网站上翻译过来的,http://developer.android.com/guide/topics/graphics/hardware-accel.html
  相关解决方案