私はAndroid開発に非常に慣れていないので、少しずつ把握しようとしています!
スプラッシュ スクリーンを実装しようとしていますが、次のアクティビティに切り替わる前にアニメーションを実行したいと考えています。私は1、2時間それを理解しようとしてきましたが、このサイトに出くわしたので、ここに行きます.これは私が試したことです.
public class SplashActivity extends Activity {
// THREAD TO PROCESS SPLASH SCREEN
private Thread splashThread;
// ANIMATION END FIELD
private boolean ANIMATION_END;
// CALLED WHEN ACTIVITY IS FIRST CREATED
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// SET THE SPLASH SCREEN XML LAYOUT
setContentView(R.layout.splash);
// GET THE SPLASH IMAGE
final ImageView logo = (ImageView) findViewById(R.id.splash_logo);
// LOAD START ANIMATION FOR SPLASH IMAGE
final Animation slideIn = AnimationUtils.loadAnimation(this, R.anim.slide_in_right);
// START ANIMATE SPLASH LOGO
logo.startAnimation(slideIn);
// END ANIMATION SPLASH LOGO
final Animation slideOut = AnimationUtils.loadAnimation(this, R.anim.slide_out_left);
// SET EVENT LISTENER FOR ANIMATION TO FINISH
slideOut.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
ANIMATION_END = true;
}
});
// SET SPLASHSCREEN THREAD
splashThread = new Thread() {
@Override
public void run() {
try {
synchronized(this) {
// DURATION OF SPLASH SCREEN
wait(4000);
}
} catch (InterruptedException e) {
}
logo.startAnimation(slideOut);
// IF ANIMATION HAS ENDED
if (ANIMATION_END == true) {
finish();
// SWITCH FROM SPLASH ACTIVITY TO MENU ACTIVITY
startActivity(new Intent(SplashActivity.this, MenuActivity.class));
}
}
};
// RUN THE SPLASH THREAD
splashThread.start();
}
// SPLASH SCREEN TOUCH EVENTS
@Override
public boolean onTouchEvent(MotionEvent event) {
// USER TOUCHES SPLASH SCREEN
if (event.getAction() == MotionEvent.ACTION_DOWN) {
synchronized(splashThread) {
// MAKE SPLASH SCREEN END
splashThread.notifyAll();
}
}
return true;
}
}
おそらく私が知っている最高のコードではありませんが、試しています。ロゴがスライドした後、ロゴに切り替えようとすると突然終了します。MenuActivity
助けてくれたすべての人に感謝します!