关于Bitmap缩放图片的问题

2025-05-15 15:30:02
推荐回答(1个)
回答1:

其实不用这么麻烦的,这样做还是会占用多余的内存空间,直接在你的R.layout.lv_item布局文件中,为其设置大小就可以了。还有,你代码中map加进去的不是图片路径(path),R.drawable.wow是R文件中,为wow图片自动生成的一个int类型值,你加入进去,再用String读出来,因为系统无法判断BitmapFactory.decodeFile(path, options);中path是不是路径,只是判断path是不是string类型个,所以编译不会报错,但实际解析不到的,这是不能显示图片的原因。另外可以通过computeSampleSize方法动态获取inSampleSize的值,代码如下:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imageFile, opts);
opts.inSampleSize = computeSampleSize(opts, -1, 128*128); //-1k可以不用改,128*128换成你需要的分辨率就好了
opts.inJustDecodeBounds = false;
try {
Bitmap bmp = BitmapFactory.decodeFile(imageFile, opts);
imageView.setImageBitmap(bmp);
} catch (OutOfMemoryError err) {
}