相关疑难解决方法(0)

Android Volley ImageLoader - BitmapLruCache参数?

我在使用新的Volley库实现Image缓存时遇到了麻烦.在演示文稿中,代码看起来像这样

mRequestQueue = Volley.newRequestQueue(context);
mImageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache());
Run Code Online (Sandbox Code Playgroud)

BitmapLruCache显然不包含在工具包中.知道如何实现它或指向一些资源?

http://www.youtube.com/watch?v=yhv8l9F44qo @ 14:38

谢谢!

android image-loading bitmapcache android-volley

35
推荐指数
3
解决办法
3万
查看次数

为什么我不使用BitmapFactory的inPurgeable选项?

Android BitmapFactory.Options.inPurgeable已被推荐用于各种地方,以避免Android 2.x及更早版本中的OutOfMemory异常(Android 3.1 修复此问题).

如果inPurgeable太棒了,为什么我不想用它?有关此选项正在执行的操作的详细信息,文档似乎非常清晰:

如果将其设置为true,则生成的位图将分配其像素,以便在系统需要回收内存时可以清除它们.在那种情况下,当需要再次访问像素时(例如,绘制位图,调用getPixels()),它们将被自动重新解码

看起来很棒.有什么收获?

android bitmap

23
推荐指数
1
解决办法
1万
查看次数

高堆大小但分配大小较低时会发生内存不足错误.为什么?

我有一个相当内存密集的进程,可能导致堆大小增长接近其限制(在这种情况下为24).

但是,当该过程结束时,分配的内存(在DDMS堆工具和堆转储中列出)远远低于6或7.

尽管分配的内存很低,而且有大量的可用内存,但堆似乎没有回来.

因此即使它说有足够的可用内存,我仍然可以在这种情况下出现内存错误.

所以它引出了几个问题:

  1. 即使DDMS的Heap选项卡中的Allocated内存和堆转储本身只显示分配的7mb内存,还有未提及的未被垃圾收集的隐藏内存?如果是这样,我该如何追踪?

  2. 似乎内存不足错误是基于堆大小,而不是分配内存大小.那么,当内存密集型进程结束时,如果不需要那么高,有没有办法强制堆大小恢复?

感谢您的见解.

memory heap android

6
推荐指数
1
解决办法
8707
查看次数

如何处理OutOfMemory异常

我在我的项目中使用Volley库但是我遇到了OutOfMemory异常的问题.在我的应用程序中,我通过NetworkImageView使用setImageUrl方法从服务器下载拇指和全尺寸图像.我正在使用BitmapLruCache:

public class BitmapLruCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache {

    public static int getDefaultLruCacheSize() {
        final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
        final int cacheSize = maxMemory / 8;

        return cacheSize;
    }

    public BitmapLruCache() {
        this(getDefaultLruCacheSize());
    }

    public BitmapLruCache(int sizeInKiloBytes) {
        super(sizeInKiloBytes);
    }

    @Override
    protected int sizeOf(String key, Bitmap value) {
        return value.getRowBytes() * value.getHeight() / 1024;
    }

    @Override
    public Bitmap getBitmap(String url) {
        return get(url);
    }


    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        put(url, bitmap); …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory android-2.2-froyo android-volley

5
推荐指数
1
解决办法
2164
查看次数