我创建了一个画廊,用于显示具有pinchzoom 的图像,并通过触摸转到下一个和上一个。我曾经访问过https://github.com/kilaka/ImageViewZoom库。我看到画廊首先上传了所有图像,然后它正在显示图像,这是一个很好的活动。但是画廊最多可以上传 4MB 的图片,如果图片大小超过 4MB,那么它会给我们带来 Bitmap outofmemory 错误。我已经习惯了 bitmap.recycle() 但它回收了所有图像。
在这里做任何方式,所以我的画廊从 sdcard 一张一张地上传图像,当我通过触摸转到下一张或上一张图像时,我当前的图像内存应该被删除。下一张图片应该上传到画廊内存中。所以我的画廊可以上传一些图片。
这是我的代码,此代码是来自访问https://github.com/kilaka/ImageViewZoom的链接 :-
gallery = new GalleryTouch(this);
gallery = (GalleryTouch) findViewById(R.id.image);
gallery.setSpacing(20);
arrayAdapter = new ArrayAdapter<ImageView>(this, -1) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
bookM= position; return getItem(position);
}
};
if(!(it.isEmpty() )) {
Collections.sort(it);
for(int i=0; i<it.size();i++) {
ImageViewTouch imageView = new ImageViewTouch(imageTouch.this);
imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
final Options options = new Options();
options.outHeight = (int) scaleHeight;
options.outWidth = (int) scaleWidth;
options.inScaled = true;
options.inPurgeable = true;
options.inSampleSize = 2;
String photoURL = it.get(i);
bitmap = BitmapFactory.decodeFile(photoURL,options);
imageView.setImageBitmap(bitmap);
arrayAdapter.add(imageView);
}
gallery.setAdapter(arrayAdapter);
}
注意:- 在这段代码中,“it”是 List it 的一个变量;并列出具有来自 sd 卡的图像路径列表,例如 sdcard/images/one.jpg 、 sdcard/images/two.jpg ........ 等。
请专家帮助我,谢谢您的重要时间。