2011-01-05 3 views
2

Я пытаюсь запустить одну анимацию после того, как другой закончен, отслеживая обратный вызов onanimationEnd первого. Однако при попытке сделать это:Можно ли запустить анимацию Android в onanimationEnd обратном вызове предыдущей?

Ошибка - метод loadAnimation (Context, int) в типе AnimationUtils не применим для аргументов (new Animation.AnimationListener() {}, int)

Я пытался использовать ответ на этот пост: --- Android Animation one after other что я интерпретировал означает, что я должен переместить все, кроме запуска анимации из обратного вызова, но когда я делаю это я получаю следующее сообщение об ошибке:

Ошибка - не может ссылаться на не конечную переменную fade3 внутри внутреннего класса, определенного в di fferent метод

Что мне здесь не хватает ???


****** КОД ДЛЯ ПЕРВОГО Пример **********


package com.smartproducts.dragracepro; 

import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.util.TypedValue; 
import android.view.Gravity; 
import android.view.View; 
import android.view.animation.Animation; 
import android.view.animation.Animation.AnimationListener; 
import android.view.animation.AnimationUtils; 
import android.view.animation.LayoutAnimationController; 
import android.widget.ImageView; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 


public class DragRaceProSplashActivity extends DragRaceProActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 

     //animate title fade in 
     TextView programtitle = (TextView) findViewById(R.id.TextViewTopTitle); 
     Animation fade1 = AnimationUtils.loadAnimation(this,R.anim.fade_in); 
     programtitle.startAnimation(fade1); 

     //show introduction and logo for Smart Shocks 
     fade1.setAnimationListener(new AnimationListener(){   
      @Override 
      public void onAnimationEnd(Animation fade1) 
      { 
***************   
ERROR IS HERE> Animation fade3 = AnimationUtils.loadAnimation(this,R.anim.fade_in2); *************** 
      ImageView sslogo = (ImageView) findViewById(R.id.ImageView03); 
       sslogo.setVisibility(View.VISIBLE); 
       sslogo.startAnimation(fade3); 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) {} 

      @Override 
      public void onAnimationStart(Animation animation) {} 
     }); 

    } 
+0

ok movinbg fade3 вне прослушивателя анимации И объявить его окончательным, но почему? Что такое Adroid пытается сказать мне ??? –

+0

Было бы легче понять, если вы отформатируете свой вопрос немного лучше .. –

ответ

0
Animation fade3 = AnimationUtils.loadAnimation(this,R.anim.fade_in2); 

this имеет в виду анимации вместо вашего контекста как ваш вызов внутри слушателя. Если вы хотите использовать этот код, вам нужно создать глобальную переменную вашего контекста и использовать эту переменную вместо this.

+0

или просто позвоните «DragRaceProSplashActivity.this» вместо «this» – marmor

Смежные вопросы