Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – canvas.drawBitmap()在平铺位图时第一次绘制位图需要更多时间大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用canvas.drawBitmap(Bitmap,src,dst,null)进行动画制作.我正在使用1个平铺图像进行动画制作,每个平铺图像@R_443_11262@00多个用于制作动画的图像.我已经把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()在平铺位图时第一次绘制位图需要更多时间所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。