图像不显示在内存中的列表视图中

时间:2015-07-01 12:55:00

标签: android

我使用imageloader类作为此示例的参数: - http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

      >  String path = data.get(position).get("product_image");
       ContextWrapper cw = new ContextWrapper(activity);
        File directory = cw.getDir("files", Context.MODE_PRIVATE);
        File mypath=new File(directory,"Restaurant/"+path);
        imageLoader.DisplayImage(mypath.toString(), producticon);    

this is path of where i store image in internal memory

如果在listview中使用此代码及其show image但是java.lang.OutOfMemoryError正在获取。 请帮帮我

      String path = data.get(position).get("product_image");
       ContextWrapper cw = new ContextWrapper(activity);

        //path to /data/data/yourapp/app_data/dirName
        File directory = cw.getDir("files", Context.MODE_PRIVATE);

        File mypath=new File(directory,"Restaurant/"+path);

       Bitmap b;
        try {
            b = BitmapFactory.decodeStream(new FileInputStream(mypath));
        //  b.compress(format, quality, stream)
             producticon.setImageBitmap(b);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

1 个答案:

答案 0 :(得分:1)

由于图片的大小,您获得java.lang.OutOfMemoryError例外。让我们快速调整大小:

而不是:     producticon.setImageBitmap(b);

你应该:     producticon.setImageBitmap(Bitmap.createScaledBitmap(b, 120, 120, false));

其中120将分别是所需的新高度和宽度。

您已在Android Developers

上找到有关处理位图的更多信息