プログレスバーは進捗状況を表示したり、作業中であることを表したりするのに使います。使い方はシンプルで進捗中であることを表現したい時だけ、表示をすればいいだけです。アニメーションは勝手に行ってくれます。進捗状況を表すときはその値をセットすれば表示されます。
例)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