2013-11-26 157 views
1

感謝您的支持。 目前我正在從事一個項目,我需要調整從服務器下載的圖像的大小。圖像具有較大的分辨率,所以我想根據設備的screenSize調整大小。下面是我的代碼。請看一看。三星Galaxy S3縮放位圖失敗

    // decode image size initially 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     FileInputStream stream1 = new FileInputStream(f); 
     BitmapFactory.decodeStream(stream1, null, o); 
     stream1.close(); 

     // Find the correct scale value. 
     int width_tmp = o.outWidth, height_tmp = o.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; 
     FileInputStream stream2 = new FileInputStream(f); 
     Bitmap bitmap = BitmapFactory.decodeStream(stream2, null, o2); 
     stream2.close(); 

但是,一旦我得到理想的規模,它會發現在三星Galaxy S3的情況下代碼結束時的空位圖。它在Emulator,Samsung Galaxy S4,Htc one v上工作得很好,我也擔心Code的泛化,因此它應該適用於所有設備。

如果有人有這樣的問題的經驗請讓我知道。

回答

0

什麼是您的REQUIRED_SIZE值?將其設置爲1024.因爲可能是由於解碼大分辨率圖像時出現內存不足異常。

+0

在三星Galaxy S3的情況下,它是720。 –