您好,登錄后才能下訂單哦!
本文實例講述了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并開始執行 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()方法之前執行的方法 */ @Override protected void onPreExecute() { super.onPreExecute(); //設置標題欄的進度條可見 setProgressBarVisibility(true); } /** * 后臺執行的耗時操作 */ @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); } /** * 后臺操作執行完畢后所要執行的方法 */ @Override protected void onPostExecute(LinearLayout result) { super.onPostExecute(result); mainLayout.addView(result); } } }
右鍵運行android project,效果如下:
進度條執行完畢后,界面會顯示四張圖片。
附:完整實例代碼點擊此處本站下載。
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。