Android編程實現顯示在標題上的進度條功能【附源碼下載】
本文實例講述了Android編程實現顯示在標題上的進度條功能。分享給大家供大家參考,具體如下:
今天我們來學習一下Android中顯示在Activity標題上的進度條。在這個例子當中我們還能夠學習到很多關于AsyncTask的知識。
(1)準備用于顯示到界面上的四張圖片img01,img02,img03,img04
(2)在Activity的布局文件activity_main.xml中只定義一個線性布局LinearLayout,并為其設置一個id,代碼如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/main_layout"> </LinearLayout>
(3)Java代碼部分,通過requestWindowFeature(Window.FEATURE_PROGRESS);語句設置Activity標題欄為有進度條風格,然后實例化并啟動一個MyTask對象,代碼如下:
public class MainActivity extends Activity {
//圖片id數組
private int[] imageIds = { R.drawable.img01, R.drawable.img02,
R.drawable.img03, R.drawable.img04 };
private LinearLayout mainLayout;
/**
* Activity的入口方法
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設置標題欄有進度條
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
mainLayout = (LinearLayout)findViewById(R.id.main_layout);
//實例化MyTask并開始執(zhí)行
new MyTask().execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/**
* 自定義繼承AsyncTask的異步類MyTask
*/
class MyTask extends AsyncTask<Void, Integer, LinearLayout>{
/**
* 在doInBackground()方法之前執(zhí)行的方法
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
//設置標題欄的進度條可見
setProgressBarVisibility(true);
}
/**
* 后臺執(zhí)行的耗時操作
*/
@Override
protected LinearLayout doInBackground(Void... params) {
LinearLayout ll = new LinearLayout(MainActivity.this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
for(int i=1; i<5; i++){
ImageView iv = new ImageView(MainActivity.this);
iv.setLayoutParams(new LayoutParams(200, 100));
iv.setImageResource(imageIds[i-1]);
ll.addView(iv);
new Thread(){
public void run() {
try {
//休眠20毫秒
Thread.sleep(20);
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
//要求更新進度條,會引起調用onProgressUpdate()方法
publishProgress(i);
}
return ll;
}
/**
* 更新進度條
*/
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
//參數值為0-10000,所以要乘以2500,values[0]取值分別是1,2,3,4
setProgress(values[0] * 2500);
}
/**
* 后臺操作執(zhí)行完畢后所要執(zhí)行的方法
*/
@Override
protected void onPostExecute(LinearLayout result) {
super.onPostExecute(result);
mainLayout.addView(result);
}
}
}
右鍵運行android project,效果如下:

進度條執(zhí)行完畢后,界面會顯示四張圖片。
附:完整實例代碼點擊此處本站下載。
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
相關文章
Android Webview的postUrl與loadUrl加載頁面實例
這篇文章主要介紹了Android Webview的postUrl與loadUrl加載頁面實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android開發(fā)中調用系統(tǒng)相冊上傳圖片到服務器OPPO等部分手機上出現短暫的顯示桌面問題的解決方法
這篇文章主要介紹了Android開發(fā)中調用系統(tǒng)相冊上傳圖片到服務器OPPO等部分手機上出現短暫的顯示桌面問題的解決方法,需要的朋友可以參考下2016-12-12
Android編程中TextView寬度過大導致Drawable無法居中問題解決方法
這篇文章主要介紹了Android編程中TextView寬度過大導致Drawable無法居中問題解決方法,以實例形式較為詳細的分析了TextView設置及xml布局與調用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10

