2015-09-30 14 views
8

Wie kann ich das gif loading image in meinem Picasso platzhalter anzeigen?Android Studio Picasso gif loading image für platzhalter

ich will in diesem Teil

den Code gif verwenden
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); 

überprüfen Sie bitte, und mein Code verbessern ..

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> 

Antwort

0

Ich bin mir nicht sicher über Picasso. Die ION-Bibliothek verfügt jedoch über integrierte GIF-Unterstützung. https://github.com/koush/ion

7

Soweit ich weiß, hat Android keine integrierte Unterstützung für GIF. So ImageView unterstützt GIF nicht standardmäßig.

Ich würde vorschlagen, Sie verwenden Glide library zum Laden von Bildern und Zwischenspeichern, da es Unterstützung für GIF bietet. Glide ist Picasso ähnlich und gilt manchmal als besser als Picasso. Die verwendeten Methoden sind auch ähnlich zu Picasso, außer dass es eine asGif() Methode, die Bild in ImageView als GIF laden kann.

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

Wenn Sie so scharf auf die Zubereitung mit Picasso selbst, dann könnten Sie in schauen müssen diese stackoverflow post

+1

ich benutze jetzt Glide, aber das Problem ist loading_gif funktioniert nicht im Platzhalter .. ich will GIF in den Platzhalter, so dass das Laden Bild wird zuerst vor dem Bild in der URL angezeigt .. – Joe

+0

Ich konfrontiert ein anderes Problem mit Glide laden gif. Ein Bild fehlt und die Animation funktioniert nicht. Ich habe versucht https://github.com/koral---android-gif-drawable. Und es funktioniert gut für mich, aber es ist nicht ImageView. – Yazon2006

1

picaso ist für imageviews, können Sie Ihre GIF-Datei in einem webView zeigen, aber u cant verwenden, die webview in picaso sicher.