Android Studio Picasso GIF为占位符加载图像

如何在我的毕加索占位符中显示gif加载图像?

我想在这部分代码中使用gif

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

请检查并改善我的代码

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://sofzh.miximages.com/android/index1.png").placeholder(R.drawable.indexloading).into(imageView); imageView3 = (ImageView) rootView.findViewById(R.id.imageView3); Picasso.with(getActivity()).load("http://sofzh.miximages.com/android/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> 

Solutions Collecting From Web of "Android Studio Picasso GIF为占位符加载图像"

据我所知,Android没有内置的GIF支持。 所以ImageView默认不支持GIF

我build议你使用Glide库进行图像加载,并且caching,因为它提供了对GIF的支持。 滑行与毕加索类似,有时被认为比毕加索好。 使用的方法也类似于毕加索,除了它有一个asGif()方法,可以加载图像到ImageView作为GIF。

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

如果你是如此热衷于使用毕加索本身,那么你可能要看看这个stackoverflowpost

picaso是用于图像浏览,你可以在webView中显示你的GIF文件,但是你不能在picaso中使用webview。

我不确定毕加索。 但是ION库已经内置了GIF支持。 https://github.com/koush/ion