2012-09-27 48 views
-2

如何在運行時將位圖縮放到非常小的尺寸,然後將它們存儲在內部存儲中?如何在運行時從存儲器調用縮放的位圖,如果不存在,請從可繪製文件夾調用它,縮放它,將其寫入存儲器,然後將其綁定到視圖。如何縮放位圖

回答

0

如果你要縮放的位圖,你可以使用Bitmap.createScaledBitmap

要縮放任意位圖到32x32可以按如下方式做到這一點:

Bitmap smallBitmap = Bitmap.createScaledBitmap(fullSizeBitmap, 32, 32, true); 
0

您可以使用BitmapFactory.Options類將圖像裁剪爲任意尺寸。

您可以使用下面:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
options.inSampleSize = 8; // 1/8th of actual image. 
BitmapFactory.decodeResource(getResources(), R.id.myimage, options); 
int imageHeight = options.outHeight; 
int imageWidth = options.outWidth; 
String imageType = options.outMimeType; 

在這裏,當你使用位圖,隨時調用它的bmp.recycle()方法,因爲GC無法清除位圖舉行的內存,如果您的位圖是沒有得到垃圾回收,那麼你也得到了OME。

+0

:我看到你的答案和安裝墊,檢查內存泄漏發生的地方。事情是我有一個應用程序與7個活動,並在這7個有網格的圖像,書籍etc.and在這裏,我添加可變背景網格view.the事情是活動之間的過渡是由左右滑動..當我在活動中連續滑動時,在第50次滑動時,我得到這個錯誤..如果你瞭解我的錯誤,請調試它。而且事情是我已經嘗試使用各種方法來擺脫這一點,如使用選項,弱引用,bitmap.recycle(),system.gc()等。 – indraja

+0

從MAT檢查後,你有沒有找到任何內存泄漏? – Shrikant

+0

它解決了你的問題嗎? – Shrikant