1)圓形旋轉進度條
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); //設置為圓形旋轉進度條
setContentView(R.layout.main);
new MyTask().execute();
}
class MyTask extends AsyncTask{
@Override
protected void onPreExecute() {
setProgressBarIndeterminateVisibility(true);// 執行前使進度條可見
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO 這裡可以編寫後臺耗時操作的代碼,本示例用執行緒sleep類比
for(int i=0; i<10 div="div" i="i">
10>
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
setProgressBarIndeterminateVisibility(false); // 執行完後使進度條隱藏
super.onPostExecute(result);
}
}
}
2)水準進度條
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS); //設置為水準進度條 注意標題列的水準進度條最大值是10000,不用自己手動設置
setContentView(R.layout.main);
setSecondaryProgress(10000); //設置副進度為10000
new MyTask().execute();
}
class MyTask extends AsyncTask{
@Override
protected void onPreExecute() {
setProgressBarVisibility(true); // 執行前使進度條可見
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO 這裡可以編寫後臺耗時操作的代碼,本示例用執行緒sleep類比
for(int i=0; i<10 div="div" i="i">
10>
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
publishProgress(i+1);
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
setProgress(values[0]*1000); //動態更新最新進度
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
setProgressBarVisibility(false); // 執行完後使進度條隱藏
super.onPostExecute(result);
}
}
}
No comments:
Post a Comment