嘗試縮放時間位圖的下降bitmap.Most是一個主要的原因,我們得到內存問題。 同時瞭解如何回收位圖。 以下代碼將幫助您。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filename, options);
options.inJustDecodeBounds = false;
options.inSampleSize = 2;
bitmap = BitmapFactory.decodeFile(filename, options);
if (bitmap != null && exact) {
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);
}
另外請確保您確實覆蓋了以下方法。
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((TextView) view);
}
或者你可以創建一個函數來縮小位圖
private byte[] resizeImage(byte[] input) {
if (input == null) {
return null;
}
Bitmap bitmapOrg = BitmapFactory.decodeByteArray(input, 0, input.length);
if (bitmapOrg == null) {
return null;
}
int height = bitmapOrg.getHeight();
int width = bitmapOrg.getWidth();
int newHeight = 250;
float scaleHeight = ((float) newHeight)/height;
// creates matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleHeight, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
width, height, matrix, true);
bitmapOrg.recycle();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
resizedBitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
resizedBitmap.recycle();
return bos.toByteArray();
}
感謝您的soln,但上面的問題是爲webview! –
@Vipul是的,我已覆蓋destroyItem,仍然沒有運氣。 – Kiran