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