我正在尝试在 android 中实现一个图片库。基于http://www.mobisoftinfotech.com/blog/android/android-gallery-widget-example-and-tutorial/的代码,我改变了一些细节。
我正在使用 WeakReference,似乎当我有太多位图时,垃圾收集器会破坏我的弱引用。我该如何处理?
我通过这个函数得到我的位图:
public static WeakReference<Bitmap> getBitmap(String imageName, int width,
int height) {
String pathToImage = getPathToImage(imageName);
Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(pathToImage, options);
/*
* Calculate inSampleSize
*/
options.inSampleSize = calculateInSampleSize(options, width, height);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
WeakReference<Bitmap> scaledBitmap = new WeakReference<Bitmap>(
BitmapFactory.decodeFile(pathToImage, options));
return scaledBitmap;
}
而且我采用了 320x480 的解决方案,所以我认为它不是那么大......
当图库中的图片超过 3 张时,其中一些不会显示。
画廊教程不是很好吗?还有其他方法可以实现吗?
谢谢!