我按照以下链接使用了动画逻辑.
http://warriormill.com/2009/10/adroid-game-development-part-1-gameloop-sprites/
@OverrIDe public voID draw(Canvas canvas) { try { FrameInfo frameinfo= animations.get(currentAnimation).sequence.get(currentFrame); Rect rclip = frameinfo.rect; Rect dest = new Rect(this.getXpos(),getYpos(),getXpos() + (rclip.right - rclip.left),getYpos() + (rclip.bottom - rclip.top)); if(cf!=null) { //color filter code here } canvas.drawBitmap(tileSheet,rclip,dest,null); update(); //after drawing update the frame counter } catch (Exception e) { Log.e("ERROR","ERROR IN SPRITE TILE CODE:"+e.toString()+e.getStackTrace().toString()); } }解决方法 资源加载需要很长时间(它们在您的APK中被压缩),以至于您必须预先加载这些资源,而不是及时加载它们. draw()方法是进行任何即时资源处理的最后一个地方. 您还应该在后台执行此 *** 作,以避免ANR问题. AsyncTask实现非常有用! 您还需要非常小心匹配DPI,否则drawBitmap()会缩放您的位图,这会显着降低帧速率. 如果您具备该技能,请使用具有2D纹理映射的OpenGL. 总结
以上是内存溢出为你收集整理的android – canvas.drawBitmap()在平铺位图时第一次绘制位图需要更多时间全部内容,希望文章能够帮你解决android – canvas.drawBitmap()在平铺位图时第一次绘制位图需要更多时间所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)