2015-10-15 22 views
0

我曾經使用BitmapFactory.Options,inSampleSize和inJustDecodeBounds在存儲器加載縮放的圖像,而不是樣本圖像...`是此方法在存儲器中加載一個縮放的圖像?的Android:加載一個按比例縮小的圖片到存儲器中

public void ScaledBitmap() { 
    Bitmap bMap; 
    ImageView iv; 
    iv=(ImageView)findViewById(R.id.my_image); 
    BitmapFactory.Options options=new BitmapFactory.Options(); 
    options.inSampleSize=4; 
    options.inJustDecodeBounds=true; 
    bMap=BitmapFactory.decodeResource(getResources(),R.drawable.my_image,options); 
    iv.setImageBitmap(bMap); 
} 
+0

什麼你到底要問? – dex

+0

我想問,如果這個代碼資源加載圖像大小/縮放在內存中,而不是正常的大小...我問,爲什麼我試圖找到有關內存不足錯誤的解決方案...在此先感謝... –

回答

0

您已設置options.inJustDecodeBounds=true;。這意味着解碼後的位圖將爲空。所以bMap將是空的。

UPDATE:當你給inJustDecodeBounds=true並解碼資源時,你將不會得到任何位圖。此選項僅用於獲取圖像資源的實際寬度和高度而不解碼圖像。使用這個寬度和高度,你可以計算出inSampleSize。計算完畢後,請設置inSampleSize並設置inJustDecodeBounds=false並再次解碼資源。現在您將獲得正確的縮放位圖。

你會發現在如何有效地擴展這裏的位圖的詳細信息:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

+0

沒有'options.inJustDecodeBounds = true;'如果我只使用'inSampleSize'圖像被加載縮放?我看到Android Developer上的位圖指南,但我有點困惑... –

+0

我已經更新了我上面的答案。 – Henry

+0

@VagelisAgelousis這不是你正在尋找的答案嗎?任何問題? – Henry

相關問題