■横向きプログレスバー


グルグル回るプログレスバーはこちらへ

プログレスバーは画面に表示するだけでは、ただ単にグルグル回ります。
横向きにするには設定する必要があります。
といっても、難しいことではなくて、インスタンスを生成するときのコンストラクタに引数を余分に渡すだけです。

android.widget.ProgressBar pb;
pb = new android.widget.ProgressBar(this,null,
                                    android.R.attr.progressBarStyleHorizontal);

▼プログレスバーの横幅の最大値を設定するには

pb.setMax(500);

▼現在の値を設定するには、

pb.setProgress(i);

▼二つ目の現在の値を設定するには、

pb.setSecondaryProgress(i);



■ボタンを押すとプログレスバーを表示して、バーば一杯になると元の画面に戻るプログラムを作成してみました。

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{
        int i;
        android.widget.ProgressBar pb;
        @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) {
                                pb = new android.widget.ProgressBar(getApplicationContext(), null,
                                        android.R.attr.progressBarStyleHorizontal);
                                pb.setVisibility(android.widget.ProgressBar.VISIBLE);
                                pb.setMax(500);
                                setContentView(pb);
                            }
                        }
                    });

                    i=0;
                    while (thread_run && i++<500) {
                        handler.post(new Runnable() {
                            @Override
                            public void run() {
                                if (thread_run) {
                                    pb.setProgress(i);
                                    pb.setSecondaryProgress(i+100);
                                }
                            }
                        });
                        try {
                            Thread.sleep(10);
                        } catch (Exception e) {}
                    }

                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            if (thread_run) {
                                ScreenPaint();
                            }
                        }
                    });
                }
            });
            th.start();
        }
    }
}

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



ボタンを押すと横向きプログレスバーが画面一杯に表示されて、二本のバーが表示されて一杯になると元の画面に戻ります。






▲トップページ > android