Да, следуй за Мимминито.Я советую 2 страницы, так как рендеринг одинаково быстр для перемотки вперед и назад для 3 страниц.
Теперь, если вам нужны изображения без задержек и изображения в Интернете.Убедитесь, что вы загрузили его и поместили в internalStorageDevice, а затем повторно использовали его, если он существует.
Мой главный ответ может быть неверным для проблемы утечки памяти.Этот новый ответ является вероятной причиной утечки памяти из-за высоты и ширины изображения.
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();
}
Этот верхний код предназначен для повторного вызова растрового изображения «newHeight» - это новая высота, присваиваемая растровому изображению.
Теперь, если это не сработает, я теперь на 100% уверен, что OP должен перегружать ViewPager с большим количеством представлений, которые может обрабатывать память Android.Решением для этого является использование ViewFlipper и ответ, который я изложил выше.