android – canvas.drawBitmap()在平铺位图时第一次绘制位图需要更多时间

android – canvas.drawBitmap()在平铺位图时第一次绘制位图需要更多时间,第1张

概述我使用canvas.drawBitmap(Bitmap,src,dst,null)进行动画制作.我正在使用1个平铺图像进行动画制作,每个平铺图像包含100多个用于制作动画的图像.我已经把onCLickListner放到了动画上.如何对onClick上的动画做出即时响应? 我按照以下链接使用了动画逻辑. http://warriormill.com/2009/10/adroid-game-devel 我使用canvas.drawBitmap(Bitmap,src,dst,null)进行动画制作.我正在使用1个平铺图像进行动画制作,每个平铺图像包含100多个用于制作动画的图像.我已经把onClickListner放到了动画上.如何对onClick上的动画做出即时响应?

我按照以下链接使用了动画逻辑.
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()在平铺位图时第一次绘制位图需要更多时间所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1124318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存