У меня есть это приложение, которое загружает изображения из веб-службы, используя библиотеку загрузчика изображений 1.9.3, и имея телефоны с низкой памятью, загрузчик изображений выдает исключение из памяти, которое отображается только в журнале Кот. Я не против исключения, но я хочу, чтобы исключение было видимым для пользователя через тост, чтобы он знал, почему изображения перестали загружаться. Любые идеи, пожалуйста,Ошибка загрузки изображения с ошибкой
ответ
Ваши изображения слишком велики по сравнению с размером вашего ImageView
.
Я рекомендую вам использовать Picasso.
с этим вы можете изменить размер изображения в соответствии с вашими потребностями.
Picasso.with(this).load(image_link)
.resize(100, 100)
.placeholder(R.drawable.placeholder)
.error(R.drawable.placeholder)
.into(imageView);
Счастливое кодирование.
Я лично предпочитаю [Glide] (https://github.com/bumptech/glide) над Пикассо – EpicPandaForce
ну его полностью до вас. ваша задача - изменить размер изображения. вы можете сделать это, как я думаю. –
Возможно, ваши изображения большие, когда вы их загрузили. Единственное изображение с разрешением 800 x 600 пикселей будет меньше 100 кбайт, когда оно будет использоваться как JPG при сжатии. Однако, когда вы декодируете его в растровое изображение, он станет ок. 2 МБ данных. Когда вы загружаете 80 книг, вы скоро получите 160 МБ данных. Mabye вы должны загружать меньше книг (20) или уменьшать размер ваших изображений с сервера.
Как правило, logcat печатает исключение, которое покажет вам, что вызывает исключение OutOfMemoryException. Когда я получил это исключение, это всегда вызывалось слишком большим или большим количеством фотографий за раз.
Попробуйте добавить
android:largeHeap="true"
в файле mainfeist 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
Позвольте мне знать, если не WOKING
Это смешно, потому что 'android: largeHeap =" true "' на самом деле хорошая идея. Я видел, что устройства Xiaomi говорят об ошибке «вне памяти» для абсолютно нормальных изображений, которые уже были изменены с помощью Glide. – EpicPandaForce
использовать скольжение .Its более быстрее избежать памяти выпуск .http: //www.androidhive.info/2016/04/android-glide-image-library-building-image- gallery-app/ –
уменьшите размер изображения –
ребята, я не загружаю изображения, я просто хочу поймать исключение, запущенное загрузчиком изображений –