2016-04-02

2016-04-02 7:30

Androidのローディング画面

簡単にSplash画面を作ってみます。
・AndroidManifestにSplashActivityを追加します。


    
        
            
            
        
    

    
    


.MainActivityの方にあったintent-filterは.SplashActivityの方に移す必要があります。

・SplashActivity

package com.park.commonasynctask;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

/**
 * Created by park on 2016/03/31.
 */
public class SplashActivity extends Activity {

    private Thread splashThread = new Thread(new SplashThread(SplashActivity.this));
    private TextView progressTextTv = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);


        progressTextTv = (TextView)findViewById(R.id.progressText);
        progressTextTv.setText(R.string.splash_progress_start);

        splashThread.start();

    }


    class SplashThread implements Runnable {
        Context context = null;

        SplashThread(Context context) {
            this.context = context;
        }

        private void setProgressMessage(int message) {
            Message msg = progressHandler.obtainMessage();
            msg.obj = getString(message);
            progressHandler.sendMessage(msg);

        }

        @Override
        public void run() {

            try {
                Thread.sleep(2000);
                setProgressMessage(R.string.splash_progress_update);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            try {
                Thread.sleep(2000);
                setProgressMessage(R.string.splash_progress_end);
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            Intent openMainActivity =  new Intent(SplashActivity.this, MainActivity.class);
            startActivity(openMainActivity);
            finish();

        }
    }


    public Handler progressHandler = new Handler(){
        public void handleMessage(Message msg){
            progressTextTv.setText(msg.obj.toString());
        }
    };
}


・Layoutにactivity_splash.xmlを追加します。




    


        


        
    



・追加したStyle
    

    
・追加したString
    初期化中です。
    アップデート中です。
    初期化完了
・動作イメージ



詳細のソースコードはGithubをご参照ください。
https://github.com/kongbab04/CommonAsyncTask
Next
This is the most recent post.
前の投稿

0 コメント:

コメントを投稿