■グルグル回るプログレスバー


横向きプログレスバーはこちらへ

プログレスバーは画面に表示するだけでグルグル回ります。
リソースで張り付けた場合でも何もコードを書かなくてもグルグル回ります。
android.widget.ProgressBar pb=(android.widget.ProgressBar)findViewById(R.id.ProgressBar);
pb.setVisibility(android.widget.ProgressBar.VISIBLE);	表示
pb.setVisibility(android.widget.ProgressBar.INVISIBLE);	非表示
リソースで張り付けて表示・非表示でグルグル回したり、消したり出来ます。
でも、それでは面白くないですからボタンを押すと画面一杯にグルグル回るプログレスバーを表示して、一定時間が経つと元の画面に戻るプログラムを作成してみました。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    boolean thread_run=true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ScreenPaint();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        thread_run=false;
    }
    private void ScreenPaint() {
        android.widget.LinearLayout ll=new android.widget.LinearLayout(this);
        android.widget.Button button=new android.widget.Button(this);
        button.setText("Button");
        ll.addView(button);
        setContentView(ll);
        button.setOnClickListener(new button_listener());
    }
    private class button_listener implements android.view.View.OnClickListener{
        @Override
        public void onClick(android.view.View view){
            Thread th = new Thread(new Runnable() {
                android.os.Handler handler = new android.os.Handler();
                @Override
                public void run() {
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            if (thread_run) {
                                android.widget.ProgressBar pb;
                                pb=new android.widget.ProgressBar(getApplicationContext());
                                pb.setVisibility(android.widget.ProgressBar.VISIBLE);
                                setContentView(pb);
                            }
                        }
                    });
                    try {
                        Thread.sleep(5000);
                    } catch (Exception e) {}
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            if (thread_run) {
                                ScreenPaint();
                            }
                        }
                    });
                }
            });
            th.start();
        }
    }
}

赤文字部分がプログレスバーを表示している部分です。
上のプログラムを実行するとまずはボタンが表示されます。



ボタンを押すとグルグル回るプログレスバーが画面一杯に表示されて、約5秒後に元の画面に戻ります。






▲トップページ > android