Android OutOfMemory问题

时间:2012-08-02 20:24:38

标签: android memory bitmap imageview scale

我在我的应用程序中遇到了outofmemory问题 经过一番搜索,我发现了这段代码

    //decodes image and scales it to reduce memory consumption
private Bitmap decodeFile(File f){
    try {
        //Decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f),null,o);

        //The new size we want to scale to
        final int REQUIRED_SIZE=70;

        //Find the correct scale value. It should be the power of 2.
        int scale=1;
        while(o.outWidth/scale/2>=REQUIRED_SIZE && o.outHeight/scale/2>=REQUIRED_SIZE)
            scale*=2;

        //Decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize=scale;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
    } catch (FileNotFoundException e) {}
    return null;
}

但IDK如何使用它,有什么帮助吗? 代码是对的吗?

1 个答案:

答案 0 :(得分:2)

  

但是IDK如何使用它

然后我猜你还没有实现它! 那么,该方法会将您的文件(例如保存在SD卡中)转换为可以用作ImageView背景的已调整大小的位图。

现在,回答你的问题,你可以使用它,因为我在下面给你看:

Bitmap bitmap = decodeFile(new File(your_string_file_path));
myImageView.setImageBitmap(bitmap);

我想你只需知道。