【问题标题】:android - unload ImageView image from memeory when it goes off screen inside ScrollViewandroid - 当 ImageView 图像在 ScrollView 内离开屏幕时从内存中卸载
【发布时间】:2013-07-23 04:39:08
【问题描述】:

我在滚动视图中添加了多个 imageView。如果图像很多,那么我会收到 OutOfMemeory 错误。所以我的问题是如何在 ImageView 图像离开屏幕时从内存中卸载它..

有什么想法吗?

【问题讨论】:

    标签: java android imageview android-imageview


    【解决方案1】:

    更简单的方法是让位图本身按需加载和卸载。我说“更简单”是因为 Android 内置了对此的支持。

    Resources r = getResources();
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inPurgeable = true;
    options.inInputShareable = true;
    imageView1.setImageBitmap(BitmapFactory.decodeResource(r, R.drawable.image1, options);
    imageView2.setImageBitmap(BitmapFactory.decodeResource(r, R.drawable.image2, options);
    

    这里的魔力在于inPurgeableinInputShareable 选项。当使用这些选项时,Android 会将位图分配到一个特殊的堆上,在内存压力下它可以被快速丢弃,当需要再次显示时,Android 会自动重新解码已清除的位图。

    【讨论】:

      【解决方案2】:

      我想你可以试试 2013 年 google i/o 上介绍的 volley 库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 2017-10-23
        • 2020-12-19
        • 1970-01-01
        • 2012-07-11
        • 2015-12-14
        • 2020-08-27
        相关资源
        最近更新 更多