0

5秒後に閉じるロード画面があり、アプリが起動します。ロード画面中に、背景のロード画面画像の上でフレームごとのアニメーションを実行したいと思います。これは、以前に多くのアプリケーションで使用されてきた単純な概念です。Androidとプログラミングを一緒に使用するのは初めてなので、その方法がわかりません。以下はsplash.java画面のコードです。他のコードがなくてもアニメーションがどのように機能するかを確認できるように、frenchsilk.javaクラスのコードを含めます。(はい、アニメーションはすでにそれ自体でのみ機能します)。

Splash.java

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;

public class Splash extends Activity {

    MediaPlayer ourSong;


@Override
protected void onCreate(Bundle PieLovesPie) {
    // TODO Auto-generated method stub
    super.onCreate(PieLovesPie);
    setContentView(R.layout.splash);
    ourSong = MediaPlayer.create(Splash.this, R.raw.sound2);
    ourSong.start();
    Thread timer = new Thread(){
        public void run(){
            try{
                      sleep(4800);

            } catch (InterruptedException e){
                e.printStackTrace();
            }finally{
    *I shortened these*     Intent open"appname" = new Intent"packageNameCode"
    *2 lines for space resonse* startActivity(open"appname");
            }
        }
    };
    timer.start();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();

}

}

Frenchsilk.java

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;

public class FrenchSilk extends Activity {
/** Called when the activity is first created. */

AnimationDrawable mainanimation; 

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.frenchsilk);

    ImageView mainimage = (ImageView) findViewById(R.id.MainAnim); 
    mainimage.setBackgroundResource(R.anim.mainanim); 
    mainanimation = (AnimationDrawable) mainimage.getBackground(); 
//        mainanimation.start();  
}
public void onWindowFocusChanged (boolean hasFocus)  
{ 
    super.onWindowFocusChanged(hasFocus); 
//        AnimationDrawable frameAnimation = (AnimationDrawable) mainimage.getBackground(); 
//        if(hasFocus) { 
        mainanimation.start(); 
//        } else { 
//            mainanimation.stop(); 
//        } 
    } 
}

コードの行間隔をめちゃくちゃにしていたので、 * (および//実際のコーディングプロセス内)でいくつかコメントしました。眠っている間に(4800)と思っていました。クラスか何かがそこに行くかもしれないという行で、アニメーションを開始するか何かを指示します。

4

1 に答える 1

1

わかりました、それで私はそれを自分で理解しました。コードを適切な場所に配置するだけで、メインのJavaファイルの下部にあるonWindowが変更されました。

于 2012-06-04T17:12:25.913 に答える