2014-01-07 59 views
0

我想從輸入流獲取位圖,然後重新調整它的大小。但是我得到了錯誤。從輸入流獲取位圖並調整大小

如果我沒有重新調整大小,它會正常工作。

任何人都可以幫忙嗎?

logcat的:

01-07 01:38:33.412: D/skia(1307): --- SkImageDecoder::Factory returned null 

CODE:

private Bitmap getBitmap(String url) 
{ 
    try { 
     Bitmap bitmap=null; 
     URL imageUrl = new URL(url); 

     HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection(); 
     conn.setConnectTimeout(10000); 
     conn.setReadTimeout(10000); 
     conn.setDoInput(true); 
     conn.setInstanceFollowRedirects(true); 
     conn.connect(); 
     InputStream is=conn.getInputStream(); 

     //return BitmapFactory.decodeStream(is); // THIS WORKS FINE 
     bitmap = decodeFile(is); 
     is.close(); 
     return bitmap; 
    } catch (Exception ex){ 
     return null; 
    } 
} 

private Bitmap decodeFile(InputStream istream){ 
    BufferedInputStream is = new BufferedInputStream(istream); 
    try { 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     BitmapFactory.decodeStream(is,null,o); 

     final int REQUIRED_SIZE=60; 
     int height_tmp=o.outHeight; 
     int scale=1; 
     while(true){ 
      if(height_tmp/2<REQUIRED_SIZE) 
       break; 
      height_tmp/=2; 
      scale*=2; 
     } 

     BitmapFactory.Options o2 = new BitmapFactory.Options(); 
     o2.inSampleSize=scale; 
     Log.d("insample", "aa: "+scale); 
     return BitmapFactory.decodeStream(is, null, o2); 
    } catch (Exception e) { 
     Log.d("aaa","aa: "+e); 
    } finally{ 
     try { 
      is.close(); 
     } catch(IOException ignored) {} 
    } 
    return null; 
} 
+0

檢查[此](http://stackoverflow.com/a/13062314/2388614)的回答。 –

+0

實際上我曾嘗試過,並得到IOException(如果我重置InputStream)或「標記無效」錯誤(如果我重置bufferinputstream)...所以我檢查了markSupported(),並發現它爲false。但不知道如何標記.....通過32K或8K或什麼? – abdfahim

+0

查看該人對[this](http://stackoverflow.com/questions/10864729/skimagedecoderfactory-returned-null)提問的評論。 –

回答

-3

iv.setImageResource(resId); 

渣油爲無效值...

它變化到

iv.setImageResource(R.drawable.ic_launcher); 

和測試代碼

+1

對不起,我們是否在同一頁? – abdfahim

+0

與OP的問題無關。完全不正確 – wkhatch

+0

甚至1%接近回答給定的問題 – Arefin