您好,登錄后才能下訂單哦!
本文實(shí)例講述了Android編程實(shí)現(xiàn)顯示在標(biāo)題上的進(jìn)度條功能。分享給大家供大家參考,具體如下:
今天我們來學(xué)習(xí)一下Android中顯示在Activity標(biāo)題上的進(jìn)度條。在這個例子當(dāng)中我們還能夠?qū)W習(xí)到很多關(guān)于AsyncTask的知識。
(1)準(zhǔn)備用于顯示到界面上的四張圖片img01,img02,img03,img04
(2)在Activity的布局文件activity_main.xml中只定義一個線性布局LinearLayout,并為其設(shè)置一個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);
語句設(shè)置Activity標(biāo)題欄為有進(jìn)度條風(fēng)格,然后實(shí)例化并啟動一個MyTask對象,代碼如下:
public class MainActivity extends Activity { //圖片id數(shù)組 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); //設(shè)置標(biāo)題欄有進(jìn)度條 requestWindowFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.activity_main); mainLayout = (LinearLayout)findViewById(R.id.main_layout); //實(shí)例化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(); //設(shè)置標(biāo)題欄的進(jìn)度條可見 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(); //要求更新進(jìn)度條,會引起調(diào)用onProgressUpdate()方法 publishProgress(i); } return ll; } /** * 更新進(jìn)度條 */ @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); //參數(shù)值為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); } } }
右鍵運(yùn)行android project,效果如下:
進(jìn)度條執(zhí)行完畢后,界面會顯示四張圖片。
附:完整實(shí)例代碼點(diǎn)擊此處本站下載。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。