2016-11-01 1 views
1

Wie man eine Animation in einem Imageview hinzufügt, nachdem das Bild aus dem Piccasso in das Fragment des viewpagers geladen wurde. der viewpager Adapter zerstört kein Fragment wie im folgenden Code:So fügen Sie eine Animation in einem Imageview hinzu, nachdem das Bild aus Piccasso geladen wurde interface of viewpager

in denen super nicht aufgerufen wird.

unten ist der Code für Imageview, die

 ImageView image = (ImageView) view.findViewById(R.id.image); 

      mPicasso.load("ImageUrl").into(image); 

Animation slide_down = AnimationUtils.loadAnimation(getContext(), 
        R.anim.slide_up); 
      slide_down.setDuration(400); 
      image.startAnimation(slide_down); 

nicht funktioniert, wenn ich so etwas wie dieses

Animation slide_down = AnimationUtils.loadAnimation(getContext(), 
        R.anim.slide_up); 
      slide_down.setDuration(1000); 
      slide_down.setAnimationListener(new Animation.AnimationListener() { 
       @Override 
       public void onAnimationStart(Animation animation) { 
        mPicasso.load("ImageUrl").into(image); 

       } 

       @Override 
       public void onAnimationEnd(Animation animation) { 

       } 

       @Override 
       public void onAnimationRepeat(Animation animation) { 

       } 
      }); 
      image.startAnimation(slide_down); 

Die Animation tun, ist für das erste Mal nicht funktioniert das zweite Mal seit viewpager nicht die Zerstörung ist Fragment

+0

Sie müssen 'in' Methode mit einem' ImageView' und 'Callback' Parameter – pskink

+0

Was sollte ich mit Viewpager tun, da es das einzige Fragment ich den Zustand des Fragments zu bewahren, so warum nicht zerstören Fragment ist. Ich habe 40 verschiedene Fragmente, für die ich den Zustand speichern, rufen Sie die gleiche Animation, aber es wird nur für die erste aufgerufen. –

+1

Sie müssen Ihre Animation von der "Ende" Callback – pskink

Antwort

0

Versuchen

mPicasso.load("ImageUrl").into(image new Callback() { 
       @Override 
       public void onSuccess() { 
        image.startAnimation(slide_down); 
       } 

       @Override 
       public void onError() { 

       } 
      }) 

Definieren Sie zuerst die Animation.

Verwandte Themen