【发布时间】:2011-08-19 04:48:00
【问题描述】:
我的可绘制文件夹中有大量资源。所有资源的大小都超过 500KB。我必须在 srollView 中一次加载所有这 25 张图像。像往常一样,我的内存不足。有没有办法以编程方式减小图像的大小。
我得到了这个函数,但它的参数是一个文件,我不知道如何从一个drawable创建一个文件。
私有位图解码文件(文件 f){ 位图 b = null; 尝试 { //解码图像大小 BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; FileInputStream fis = new FileInputStream(f); BitmapFactory.decodeStream(fis, null, o); fis.close(); 整数比例 = 1; 如果(o.outHeight > IMAGE_MAX_SIZE || o.outWidth > IMAGE_MAX_SIZE){ scale = Math.pow(2, (int) Math.round(Math.log(IMAGE_MAX_SIZE / (double) Math.max(o.outHeight, o.outWidth)) / Math.log(0.5))); } //使用 inSampleSize 解码 BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = 比例; fis = new FileInputStream(f); b = BitmapFactory.decodeStream(fis, null, o2); fis.close(); } 捕捉(FileNotFoundException e){ } 返回 b; }经过多次遍历后,我必须循环浏览此屏幕多次,系统显示内存不足,并且正在从堆栈中删除后面的其他视图,但我确实需要它。 请帮帮我。
【问题讨论】:
标签: android