欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程實現(xiàn)顯示在標題上的進度條功能【附源碼下載】

 更新時間:2018年01月22日 11:56:36   作者:Bear  
這篇文章主要介紹了Android編程實現(xiàn)顯示在標題上的進度條功能,涉及Android界面布局及相關組件屬性設置技巧,并附帶完整實例源碼供讀者下載參考,需要的朋友可以參考下

本文實例講述了Android編程實現(xiàn)顯示在標題上的進度條功能。分享給大家供大家參考,具體如下:

今天我們來學習一下Android中顯示在Activity標題上的進度條。在這個例子當中我們還能夠?qū)W習到很多關于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數(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);
    //設置標題欄有進度條
    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();
        //要求更新進度條,會引起調(diào)用onProgressUpdate()方法
        publishProgress(i);
      }
      return ll;
    }
    /**
     * 更新進度條
     */
    @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);
    }
  }
}

右鍵運行android project,效果如下:

進度條執(zhí)行完畢后,界面會顯示四張圖片。

附:完整實例代碼點擊此處本站下載。

更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

相關文章

最新評論