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);  
    }  

 

發佈留言