2012-02-29 7 views
1

私のアプリケーションには、実行時にたくさんの画像が読み込まれています。このアプリはほとんどすべてのアンドロイドデバイスでうまく動作しますが、Xperiaでは仮想メモリが少なくても頻繁にクラッシュします。 plz help me ...Sony Ericsson Xperiaの仮想メモリが少ない

答えて

1

あなたは低いmemroyエラーをキャッチし、ダウンロードされたイメージのサイズを以下のように縮小します。

catch(OutOfMemoryError e) 
     { 
      e.printStackTrace(); 
      Log.e("Out of memory error", e.toString()); 
      reduce_size(); 
     } 
..... 

BitmapFactory.Options options=new BitmapFactory.Options(); 
    options.inSampleSize = 8; 
    options.inJustDecodeBounds = true; 

    Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options); 

    final int REQUIRED_SIZE=70; 

    int width_tmp=options.outWidth, height_tmp=options.outHeight; 
    int scale=1; 
    while(true){ 
     if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE) 
      break; 
     width_tmp/=2; 
     height_tmp/=2; 
     scale*=2; 
    } 

    //Decode with inSampleSize 
    BitmapFactory.Options o2 = new BitmapFactory.Options(); 
    o2.inSampleSize=scale; 
    Bitmap btm=BitmapFactory.decodeStream(is, null, o2); 
    img_t.setImageBitmap(btm); 
+0

すべての画像を描画可能 – jibysthomas

+0

ない問題を使用BitmapDrawable – Maneesh

+0

から取られているが、私は彼らがすべて固定サイズである画像のサイズを変更傾けます。 – jibysthomas

関連する問題