2017-01-16 7 views
0

У меня есть реализация загрузки изображений с Picasso. Я хочу, чтобы он показывал индикатор выполнения при загрузке изображения из URL. Когда он загружается, индикатор выполнения скрыт. Если он не может, я хочу, чтобы он отображал изображение ошибки и даже затем скрывал ProgressBar.Picasso не вызывает onError, когда телефон находится в автономном режиме, и он не может загрузить изображение

Но если нет сетевого подключения, он никогда не вызываетError, и ProgressBar всегда отображается.

public class PicassoShowImageHideProgressBarCallback extends Callback.EmptyCallback { 
    private ImageView mImageView; 
    private ProgressBar mProgressBar; 
    private static final String TAG = "PicassoShowImageHidePro"; 

    public PicassoShowImageHideProgressBarCallback(ImageView imageView, 
      ProgressBar progressBar) { 
     mImageView = imageView; 
     mProgressBar = progressBar; 
    } 

    @Override 
    public void onSuccess() { 
     mImageView.setVisibility(View.VISIBLE); 
     mProgressBar.setVisibility(View.GONE); 
    } 

    @Override 
    public void onError() { 
     mProgressBar.setVisibility(View.GONE); 
    } 
} 

@BindView(R.id.poster_image) 
ImageView mImageView; 

@BindView(R.id.pb_progress_loading) 
ProgressBar mProgressBar; 

Picasso.with(mContext).load(path).error(R.drawable.ic_error).into(mImageView, 
       new PicassoShowImageHideProgressBarCallback(mImageView, mProgressBar)); 
+0

http://stackoverflow.com/questions/33885561/does-picasso-library-for-android-handle-image-loading-while-network-connectivity –

+0

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

+0

Загружает ли ваш файл 'R.drawable.ic_error' в ImageView? –

ответ

0

Does Picasso library for Android handle image loading while network connectivity is off?

Пожалуйста, обратите внимание на ссылку выше в отношении того же вопроса.

+0

Это не работает ... метод onError никогда не называется. Я пробовал это раньше. – alexpfx

+0

private boolean isNetworkAvailable() { ConnectivityManager connectionManManager = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo! = Null && activeNetworkInfo.isConnected(); } Вы можете использовать его, чтобы проверить, находится ли устройство в сети или в автономном режиме. Если его offlne тогда нет необходимости инициировать вызов picasso –

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

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