2011-12-20 41 views
9

Đây là ứng dụng đầu tiên của tôi và tôi cần bắt đầu hoạt động mới khi hoạt ảnh kết thúc. tôi cần phải làm gì? Mã của tôi:Cách bắt đầu hoạt động trên hoạt ảnh kết thúc

package com.lineage.goddess; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.WindowManager; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.TextView; 

public class LineageSplashActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     startAnimation(); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    } 

    private void startAnimation() { 
     // TODO Auto-generated method stub 
     TextView logo1= (TextView) findViewById(R.id.TextView1); 
     Animation fade1= AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     logo1.startAnimation(fade1); 
     TextView logo2= (TextView) findViewById(R.id.TextView2); 
     Animation fade2= AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     logo2.startAnimation(fade2); 
     TextView logo3= (TextView) findViewById(R.id.TextView3); 
     Animation fade3= AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     logo3.startAnimation(fade3); 
     TextView logo4= (TextView) findViewById(R.id.TextView4); 
     Animation fade4= AnimationUtils.loadAnimation(this, R.anim.fade_in2); 
     logo4.startAnimation(fade4);} 
     public void onAnimationEnd() { 
      Intent i = new Intent(LineageSplashActivity.this, LineageMenuActivity.class); 
      LineageSplashActivity.this.startActivity(i); 
; 
     } 
    } 

Trả lời

17

Đặt AnimationListener thành hoạt ảnh bạn muốn sử dụng để bắt đầu Hoạt động của bạn.

myAnimation.setAnimationListener(new AnimationListener() { 
    public void onAnimationStart(Animation animation) {} 
    public void onAnimationRepeat(Animation animation) {} 
    public void onAnimationEnd(Animation animation) { 
     Intent i = new Intent(LineageSplashActivity.this, LineageMenuActivity.class); 
     LineageSplashActivity.this.startActivity(i); 
    } 
} 

Vì vậy, mã của bạn sẽ như thế này:

package com.lineage.goddess; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.WindowManager; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.TextView; 

public class LineageSplashActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     startAnimation(); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    } 

    private void startAnimation() { 
     // TODO Auto-generated method stub 
     TextView logo1= (TextView) findViewById(R.id.TextView1); 
     Animation fade1= AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     logo1.startAnimation(fade1); 
     TextView logo2= (TextView) findViewById(R.id.TextView2); 
     Animation fade2= AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     logo2.startAnimation(fade2); 
     TextView logo3= (TextView) findViewById(R.id.TextView3); 
     Animation fade3= AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     logo3.startAnimation(fade3); 
     TextView logo4= (TextView) findViewById(R.id.TextView4); 
     Animation fade4= AnimationUtils.loadAnimation(this, R.anim.fade_in2); 
     face4.setAnimationListener(new AnimationListener() { 
      public void onAnimationStart(Animation animation) {} 
      public void onAnimationRepeat(Animation animation) {} 
      public void onAnimationEnd(Animation animation) { 
       Intent i = new Intent(LineageSplashActivity.this, LineageMenuActivity.class); 
       LineageSplashActivity.this.startActivity(i); 
      } 
     }  

     logo4.startAnimation(fade4);  
    } 
} 
+0

vui lòng cung cấp cho tôi mã đầy đủ ... khi tôi pase nó sau khi TextView logo4 = (TextView) findViewById (R.id.TextView4); Hoạt ảnh fade4 = AnimationUtils.loadAnimation (điều này, R.anim.fade_in2); logo4.startAnimation (fade4);} tôi có: myAnimation không thể được giải quyết và AnimationListener không thể được giải quyết thành một loại – user1108339

+0

Bạn nên tự mình thử điều này. Dù sao, mã được đăng trong câu trả lời của tôi. – Jordi

+0

thx. thật khó cho tôi: | – user1108339

4

Mã của bạn đã chảy máu mắt của tôi, vì vậy tôi cố định nó càng nhiều càng tốt Tôi có thể:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.WindowManager; 
import android.view.animation.Animation; 
import android.view.animation.Animation.AnimationListener; 
import android.view.animation.AnimationUtils; 

public class LineageSplashActivity extends Activity implements AnimationListener { 

    private static final int NUMBER_OF_ANIMATIONS = 4; 
    private int animationFinishedCount = 0; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     startAnimations(); 
    } 

    private void startAnimations() { 
     Animation fade = AnimationUtils.loadAnimation(this, R.anim.fade_in); 
     fade.setAnimationListener(this);  

     findViewById(R.id.TextView1).startAnimation(fade); 
     findViewById(R.id.TextView2).startAnimation(fade); 
     findViewById(R.id.TextView3).startAnimation(fade); 
     findViewById(R.id.TextView4).startAnimation(fade); 
    } 


    @Override 
    public void onAnimationEnd(Animation animation) { 
      // When all animations have finished - start the next activity 
     if(++animationFinishedCount == NUMBER_OF_ANIMATIONS){ 
      Intent intent = new Intent(this, LineageMenuActivity.class); 
      startActivity(intent); 
     } 
    } 

    @Override 
    public void onAnimationStart(Animation animation) { 
     // Nothing 
    } 

    @Override 
    public void onAnimationRepeat(Animation animation) { 
     // Nothing 
    } 
} 

Và nếu nó không phải là loại sai và bạn thực sự cần một hoạt ảnh khác nhau cho lần xem văn bản thứ 4, bạn có thể xóa kiểm tra số lượng và chỉ thêm trình xử lý hoạt ảnh vào hoạt ảnh riêng lẻ đó.

Các vấn đề liên quan