把一张480*800 Bitmap(屏幕尺寸)绘制之后,帧数一下从60fps掉到不到40fps,请教该怎么办?
作为游戏的背景图片,这张大位图的绘制是必须的,可一旦绘制帧数就保不住
哪些游戏厂商的2D游戏是怎么处理这个问题的啊??所用技术:surfaceview框架 图片绘制:bitmap+canvas
作为游戏的背景图片,这张大位图的绘制是必须的,可一旦绘制帧数就保不住
哪些游戏厂商的2D游戏是怎么处理这个问题的啊??所用技术:surfaceview框架 图片绘制:bitmap+canvas
解决方案 »
- 怎么获取手机上保存的wifi密码?
- 如何解决地图加载图层较多时,滑动地图出现的不流畅现象
- mDb cannot be resolved
- Android的配置文件一般都保存在哪里?
- [注册了个Hack boot.img的Windows程序项目,希望能有人一起完成
- 关于Receiver被调用时处于哪个进程和线程的问题
- 有人做过安卓广告sdk开发吗?
- 小白面试求助,面试java,结果让我写安卓的人员管理系统,要能增删查改,求思路
- 跪求Android怎样将res文件夹打包到jar
- scrollview和horizontalscrollview和relativelayout混合使用
- 关于自定义属性在jar包的实现
- 请教一个android 发送多条短信的问题。
帧数的变化,那么就是你bitmap的处理有问题。如果这个时间很长,我也不知道怎么
解决了,用opengl应该会快点吧
全部的canvas.drawbitmap大概用掉40%~50%的时间。全部游戏逻辑占用大概10%~20%的时间。剩下的时间暂时没找出是哪里消耗的
嗯有些明白了,具体怎么操作,是不是得自己创建个屏幕大小的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