2016-12-01 19 views
0

У меня есть это приложение, которое загружает изображения из веб-службы, используя библиотеку загрузчика изображений 1.9.3, и имея телефоны с низкой памятью, загрузчик изображений выдает исключение из памяти, которое отображается только в журнале Кот. Я не против исключения, но я хочу, чтобы исключение было видимым для пользователя через тост, чтобы он знал, почему изображения перестали загружаться. Любые идеи, пожалуйста,Ошибка загрузки изображения с ошибкой

+0

использовать скольжение .Its более быстрее избежать памяти выпуск .http: //www.androidhive.info/2016/04/android-glide-image-library-building-image- gallery-app/ –

+0

уменьшите размер изображения –

+0

ребята, я не загружаю изображения, я просто хочу поймать исключение, запущенное загрузчиком изображений –

ответ

1

Ваши изображения слишком велики по сравнению с размером вашего ImageView.

Я рекомендую вам использовать Picasso.

с этим вы можете изменить размер изображения в соответствии с вашими потребностями.

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

Счастливое кодирование.

+0

Я лично предпочитаю [Glide] (https://github.com/bumptech/glide) над Пикассо – EpicPandaForce

+0

ну его полностью до вас. ваша задача - изменить размер изображения. вы можете сделать это, как я думаю. –

0

Возможно, ваши изображения большие, когда вы их загрузили. Единственное изображение с разрешением 800 x 600 пикселей будет меньше 100 кбайт, когда оно будет использоваться как JPG при сжатии. Однако, когда вы декодируете его в растровое изображение, он станет ок. 2 МБ данных. Когда вы загружаете 80 книг, вы скоро получите 160 МБ данных. Mabye вы должны загружать меньше книг (20) или уменьшать размер ваших изображений с сервера.

Как правило, logcat печатает исключение, которое покажет вам, что вызывает исключение OutOfMemoryException. Когда я получил это исключение, это всегда вызывалось слишком большим или большим количеством фотографий за раз.

0

Попробуйте добавить

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

+0

Это смешно, потому что 'android: largeHeap =" true "' на самом деле хорошая идея. Я видел, что устройства Xiaomi говорят об ошибке «вне памяти» для абсолютно нормальных изображений, которые уже были изменены с помощью Glide. – EpicPandaForce

 Смежные вопросы

  • Нет связанных вопросов^_^