プログレスバーは進捗状況を表示したり、作業中であることを表したりするのに使います。使い方はシンプルで進捗中であることを表現したい時だけ、表示をすればいいだけです。アニメーションは勝手に行ってくれます。進捗状況を表すときはその値をセットすれば表示されます。
例)3種類のプログレスバーを表示し、進捗状況を表すバーが2段階で進んでいき、最後にプログレスバー2つを消します。進捗状況の変化はスレッドを使って定期的に値を更新しています。
<ProgressBar android:id="@+id/progress1" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Small" /> <ProgressBar android:id="@+id/progress2" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Large" /> <ProgressBar android:id="@+id/progress3" android:layout_width="match_parent" android:layout_height="wrap_content" style="@android:style/Widget.ProgressBar.Horizontal" />
public class SampleAppActivity extends Activity { private final static String TAB = "SampleAppActivity"; private Handler mHandler = new Handler(); private ProgressBar mProgress1, mProgress2, mProgress3; private final int PROGRESS_MAX = 256; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mProgress1 = (ProgressBar) findViewById(R.id.progress1); mProgress2 = (ProgressBar) findViewById(R.id.progress2); mProgress3 = (ProgressBar) findViewById(R.id.progress3); mProgress3.setMax(PROGRESS_MAX); mProgress3.setProgress(10); new Thread(new Runnable() { @Override public void run() { while(mProgress3.getProgress() < PROGRESS_MAX) { mHandler.post(new Runnable() { @Override public void run() { mProgress3.incrementProgressBy(3); mProgress3.incrementSecondaryProgressBy(8); } }); try { Thread.sleep(150); } catch (InterruptedException e) { } } mHandler.post(new Runnable() { @Override public void run() { mProgress1.setVisibility(View.GONE); mProgress2.setVisibility(View.GONE); } }); } }).start(); } }
参考:Android Developers:ProgressBar
No comments:
Post a Comment