当前位置:操作系统 > 安卓/Android >>

android中Bitmap导致的内存溢出

今天研究了下android原生态实现游戏,主要是使用自定义View类,通过不断调用其onDraw方法实现界面刷新,完成动。但是由于是研究学习阶段,难免会有错误,我将使用到的图片在ondraw方法中加载了,这样导致每次重新绘制都要加载Bitmap对象,这样导致了大量的内存使用,最终内存不堪重负,窗体自动销毁。最后,将需要使用到的图片放在了声明部分,果然问题解决了,所以,想记录下来希望看到这篇文章的朋友都能够少走弯路。
 
 
// 素材图片  
    Bitmap bmap_bg = BitmapFactory.decodeResource(getResources(), R.drawable.map3_1);  
    Bitmap bmap_fighter = BitmapFactory.decodeResource(getResources(), R.drawable.fighter_96);  
      
protected void onDraw(Canvas canvas) {  
        // TODO Auto-generated method stub  
        super.onDraw(canvas);  
        Paint paint = new Paint();  
          
        // 绘制背景  
        //Bitmap bmap_bg = BitmapFactory.decodeResource(getResources(), R.drawable.map3_1);  
        canvas.drawBitmap(bmap_bg, 0,0, paint);  
          
        //Bitmap bmap_fighter = BitmapFactory.decodeResource(getResources(), R.drawable.fighter_72);  
          
        //图片的尺寸  
        int width = bmap_fighter.getWidth();  
        int height = bmap_fighter.getHeight();  
          
        canvas.drawBitmap(bmap_fighter, px-width/2, py-height/2, paint);  
    }  

 


补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,