Intereting Posts
Список отступов в TextView Android проверяет, что пользователь зарегистрировался раньше, иначе начните действие входа Как извлечь образцы PCM из вывода декодера MediaCodec Как показать раздвижное меню в каждой операции Интерфейс Builder (пользовательский интерфейс) для Android Как защитить фоновое обслуживание / аварийные сигналы, которые нужно убить в недавно запущенных устройствах в настраиваемых ОС, таких как oppo – coloros, vivo-funtouch os, Xiomi-MIUI os? OnUtteranceCompleted не вызван? Как я могу получить доступ к значению BuildConfig в моем файле AndroidManifest.xml? Android: программное копирование apk в / system / app Phonegap 3.1 – Невозможно скрыть заставку на устройстве Android ListView, который не прокручивается? Панель инструментов Android не отображает пользовательские возможности Расширяемый список просмотра setOnChildClickListener не работает Добавить кнопку в макет программно Фрагмент носа для носочного ножа не работает?

Анимированное загрузочное изображение в пикассо

У меня есть следующий код для загрузки изображения в Picasso, с помощью drawable для placeholder для отображения во время загрузки изображения. Тем не менее, я хочу, чтобы анимированный вращающийся стилист, который оживляет вокруг и вокруг, пока изображение загружается, как я вижу в большинстве профессиональных приложений. Пикассо, похоже, не поддерживает это, а только статические изображения. Есть ли способ заставить его работать с Пикассо или мне нужно сделать что-то другое?

Picasso.with(context).load(url) .placeholder(R.drawable.loading) .error(R.drawable.image_download_error) .into(view); 

Solutions Collecting From Web of "Анимированное загрузочное изображение в пикассо"

Как получить изображение анимации загрузки с использованием компоновщика Picasso:

Я решил это легко, используя анимированный-rotate xml-объект.

шаги:

progress_image.png

progress_image.png

/res/drawable/progress_animation.xml

 <?xml version="1.0" encoding="utf-8"?> <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/progress_image" android:pivotX="50%" android:pivotY="50%"/> 

Пикассо loading:

 Picasso.with( context ) .load( your_path ) .error( R.drawable.ic_error ) .placeholder( R.drawable.progress_animation ) .into( image_view ); 

Надеюсь, это поможет!

Я реализовал диалог прогресса до загрузки изображения и его очень простой. Возьмите ImageView в относительной компоновке и поставьте загрузчик хода на один и тот же вид изображения. Примените приведенный ниже код и просмотрите только видимость диалогового окна прогресса.

 holder.loader.setVisibility(View.VISIBLE); holder.imageView.setVisibility(View.VISIBLE); final ProgressBar progressView = holder.loader; Picasso.with(context) .load(image_url) .transform(new RoundedTransformation(15, 0)) .fit() .into(holder.imageView, new Callback() { @Override public void onSuccess() { progressView.setVisibility(View.GONE); } @Override public void onError() { // TODO Auto-generated method stub } }); } 

Наслаждаться. 🙂

К сожалению, Пикассо не поддерживает анимированные заполнители.

Один из способов, которыми вы могли бы обойти это, – разместить свой ImageView в FrameLayout с анимированным вырезаемым снизу. Таким образом, когда Picasso загружает изображение, он загружается поверх анимированного заполнителя, что дает пользователю предполагаемый эффект.

Кроме того, вы можете загрузить изображение в Target . Затем вы увидите индикатор выполнения по умолчанию, и когда вызывается метод onBitmapLoaded, вы можете скрыть его и отобразить изображение. Вы можете увидеть базовую реализацию этого здесь

Я сделал это следующим образом:

  1. Создал drawable (нашел где-то в Интернете) и поместил его в res / drawable:

     <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="90" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360"> <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="7.0"> <gradient android:angle="0" android:centerColor="#007DD6" android:endColor="#007DD6" android:startColor="#007DD6" android:type="sweep" android:useLevel="false" /> </shape> 

  2. В моем элементе для элемента GridView добавлен элемент ProgressBar:

     <ProgressBar android:id="@+id/movie_item_spinner" android:layout_width="@dimen/poster_width" android:layout_height="@dimen/poster_height" android:progressDrawable="@drawable/circular_progress_bar"/> 
  3. В Adapter добавлен целевой объект со следующими параметрами, где плакат и прядильщик являются ссылками на ImageView и ProgressBar:

    // Цель показать / скрыть ProgressBar на ImageView

     final Target target = new Target() { @Override public void onPrepareLoad(Drawable drawable) { poster.setBackgroundResource(R.color.white); spinner.setVisibility(View.VISIBLE); } @Override public void onBitmapLoaded(Bitmap photo, Picasso.LoadedFrom from) { poster.setBackgroundDrawable(new BitmapDrawable(photo)); spinner.setVisibility(View.GONE); } @Override public void onBitmapFailed(Drawable drawable) { poster.setBackgroundResource(R.color.white); } }; 
  4. Результаты будут такими, как при загрузке – кружок вращается (извините за этот снимок экрана, но изображения появляются слишком быстро): ScreenShot

Для тех, кто пытается использовать технику DBragion: убедитесь, что у вас есть последняя версия Picasso, иначе она не начнет вращаться. Моя работа не работала, пока я не использовал версию 2.5.2.

 compile 'com.squareup.picasso:picasso:2.5.2'