プログレスダイアログの表示

何か重い処理(ファイル読み込みなど)をするときには現在どのくらい処理が進んでいるのか目で見えた方が便利です。

そこで処理の進歩をダイアログ上で表示するのにProgressDialogを利用します。

使用例

例えば次のような使い方をします。

public class MainActivity extends Activity 
{
    
    ProgressDialog progressDialog;
        //表示するプログレスダイアログ
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        progressDialog = new ProgressDialog(this);
        progressDialog.setMax(100);
            //最大値を設定
        progressDialog.setProgress(0);
            //プログレスバーの初期値を設定
        progressDialog.setIndeterminate(false);
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

        loadFile();
    }

    //ファイルダウンロードを再現しているメソッド
    public void loadFile()
    {
        progressDialog.show();
        for(int i = 0; i < 100; ++i){
            progressDialog.setProgress(i);
            progressDialog.setMessage(Integer.toString(i) + "%");
            Thread.sleep(3000);
                //3秒待機
        }
        progressDialog.dismiss();
    }
}

この例のloadFileというメソッドでファイル読み込みの処理を再現していて、処理が進むにつれてダイアログのプログレスバーとメッセージ部分が変化するようにしてあります。

そしてすべての処理が終了したらdismissメソッドでダイアログを破棄しています。

ダイアログのスタイルの種類

プログレスダイアログのアニメーションには2つあり、setProgressStyleメソッドでアニメのスタイルを指定できます。

値とそのダイアログの種類は次の通りです。

  1. ProgressDialog.STYLE_HORIZONTAL

    ダイアログは次のように水平なプログレスバーを持って表示されます。

    水平プログレスバーを持ったプログレスダイアログの画像
  2. ProgressDialog.STYLE_SPINNER

    ダイアログには次のように円が回転しているようなアニメーションが表示されます。

    スピナー型のプログレスダイアログの画像

STYLE_HORIZONTALを渡したときはsetProgressメソッドで指定した分だけプログレスバーが色付けされます。

以上、ProgressDialogの使い方でした。

関連項目
プライバシーポリシー