内存不足错误图像加载器

时间:2016-12-01 11:41:49

标签: android universal-image-loader

我有这个应用程序使用图像加载器1.9.3库加载来自Web服务的图像,并且具有内存不足的电话,图像加载器提供仅在日志cat中可见的内存不足异常。我不介意异常,但我希望用户可以通过toast看到异常,这样他就知道图像停止加载的原因。 有任何想法

3 个答案:

答案 0 :(得分:1)

ImageView的尺寸相比,您的图片太大了。

我建议您使用Picasso

使用此功能,您可以根据需要调整图像大小。

Picasso.with(this).load(image_link)
    .resize(100, 100)
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.placeholder)
    .into(imageView);

快乐编码。

答案 1 :(得分:0)

下载它们时,您的图像可能很大。当JPG压缩时,800 x 600像素的单个图像将小于100kb。但是,当您将其解码为位图时,它将变为大约。 2MB的数据。当您加载80本书时,您很快就会获得160MB的数据。 Mabye你应该加载较少的书籍(20)或减少服务器上图像的大小。

通常,logcat会打印一个Exception,它会显示导致OutOfMemoryException的原因。当我得到这个例外时,它总是由一次太大或太多的图片引起。

答案 2 :(得分:0)

尝试添加

 android:largeHeap="true"

在主要文件app-> Src->主文件夹

<application
    android:name="com.xxxxxxxxxxxxxx"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"

    android:largeHeap="true"

    android:theme="@style/myAppTheme">

    <activity
        android:name="com.xxxxxxxxxxxxxx"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

要解码文件,您可以使用此https://stackoverflow.com/a/823966/4741746

我的解决方案是https://stackoverflow.com/a/13226245/4741746

如果不是,请告诉我