web-dev-qa-db-fra.com

Android Studio Picasso gif image de chargement pour espace réservé

Comment puis-je afficher l'image de chargement gif dans mon espace réservé Picasso?

je veux utiliser gif dans cette partie du code

imageView = (ImageView) rootView.findViewById(R.id.imageView);
Picasso.with(getActivity()).load("http://joehamirbalabadan.com/Android/android/imghome/index1.png").placeholder(R.drawable.indexloading).into(imageView);
imageView3 = (ImageView) rootView.findViewById(R.id.imageView3);
Picasso.with(getActivity()).load("http://joehamirbalabadan.com/Android/android/imghome/index3.png").placeholder(R.drawable.indexloading).into(imageView3);

s'il vous plaît vérifier et améliorer mon code ..

HomeFragment.Java

package com.example.administrator.mosbeau;

import Android.app.Activity;
import Android.app.Fragment;
import Android.app.FragmentManager;
import Android.graphics.Bitmap;
import Android.graphics.drawable.BitmapDrawable;
import Android.os.Bundle;
import Android.support.annotation.Nullable;
import Android.view.LayoutInflater;
import Android.view.View;
import Android.view.ViewGroup;
import Android.widget.ImageView;
import Android.widget.ProgressBar;

import com.squareup.picasso.Picasso;

/**
 * Created by Administrator on 9/7/2015.
 */
public class HomeFragment extends Fragment {

    public static HomeFragment newInstance() {
        HomeFragment fragment = new HomeFragment();
        return fragment;
    }

    public HomeFragment () {
    }

    Boolean InternetAvailable = false;
    Seocnd detectconnection;

    ImageView imageView, imageView3;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.homelayout, container, false);

        detectconnection = new Seocnd(getActivity());
        InternetAvailable = detectconnection.InternetConnecting();
        if (InternetAvailable) {

            imageView = (ImageView) rootView.findViewById(R.id.imageView);
            Picasso.with(getActivity()).load("http://joehamirbalabadan.com/Android/android/imghome/index1.png").placeholder(R.drawable.indexloading).into(imageView);

            imageView3 = (ImageView) rootView.findViewById(R.id.imageView3);
            Picasso.with(getActivity()).load("http://joehamirbalabadan.com/Android/android/imghome/index3.png").placeholder(R.drawable.indexloading).into(imageView3);


        } else {
            NointernetFragment fragment = new NointernetFragment();
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.container, fragment)
                    .commit();
        }

        return rootView;
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        ((MainActivity) activity).onSectionAttached(1);
    }

}

homelayout.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:orientation="horizontal"
    Android:fillViewport="false"
    Android:background="#fffff1f1">
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent" Android:layout_height="match_parent"
    Android:background="#fffff1f1"
    Android:padding="10dp">



    <ImageView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:id="@+id/imageView"
        Android:src="@drawable/index1"
        Android:layout_alignParentEnd="false"
        Android:layout_alignParentStart="false"
        Android:layout_alignParentTop="false"
        Android:layout_alignParentLeft="false"
        Android:layout_alignParentRight="false"
        Android:layout_alignWithParentIfMissing="false"
        Android:adjustViewBounds="true"
        Android:layout_marginBottom="10dp"
        Android:layout_centerHorizontal="true"
        Android:background="#ffffffff" />

    <ImageView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:id="@+id/imageView2"
        Android:src="@drawable/index2"
        Android:layout_below="@+id/imageView"
        Android:adjustViewBounds="true"
        Android:layout_marginBottom="10dp" />

    <ImageView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:id="@+id/imageView3"
        Android:src="@drawable/index3"
        Android:layout_below="@+id/imageView2"
        Android:layout_alignParentBottom="true"
        Android:adjustViewBounds="true"
        Android:background="#ffffffff"
        Android:layout_centerHorizontal="true" />

</RelativeLayout>
</ScrollView>
9
Joe

D'après ce que je sais, Android ne dispose pas d'un support intégré pour le format GIF. Donc, ImageView ne prend pas en charge le format GIF par défaut.

Je vous suggérerais d'utiliser Glide library pour le chargement d'images et la mise en cache, car elles fournissent un support pour GIF. Glide est similaire à Picasso et est parfois considéré comme meilleur que Picasso. Les méthodes utilisées sont également similaires à Picasso, à la différence qu’il dispose d’une méthode asGif () qui permet de charger une image dans ImageView au format GIF. 

Glide.with(context)
    .load(imageUrl)
    .asGif()
    .placeholder(R.drawable.loading_gif)
    .into(imageView);

Si vous souhaitez vraiment utiliser Picasso lui-même, vous devrez peut-être regarder dans/ stackoverflow post

9
capt.swag

picasso est destiné aux vues, vous pouvez afficher votre fichier GIF dans une vue Web, mais vous ne pouvez pas utiliser cette vue dans picaso à coup sûr.

1
Pirisok

Je le fais avec Glide, vous mettez l'URL avec l'extension gif et ça marche

  Glide.with(getApplicationContext()).load("http://URL/estado2.gif").into(imageView);

Je ne suis pas sûr de Picasso. Mais la bibliothèque ION a un support GIF intégré. https://github.com/koush/ion

0
Ravi Gadipudi