最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

今天我們來學習一下Android中顯示在Activity標題上的進度條。在這個例子當中我們還能夠?qū)W習到很多關(guān)于AsyncTask的知識。

(1)準備用于顯示到界面上的四張圖片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標題欄為有進度條風格,然后實例化并啟動一個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è)置標題欄有進度條
    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();
      //設(shè)置標題欄的進度條可見
      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í)行完畢后,界面會顯示四張圖片。

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

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

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

相關(guān)文章

最新評論

新郑市| 海南省| 承德市| 雷波县| 锡林浩特市| 榕江县| 河北区| 平利县| 磴口县| 洞头县| 禹州市| 雷州市| 绿春县| 吉隆县| 库尔勒市| 新巴尔虎右旗| 黄龙县| 读书| 藁城市| 黔西县| 会理县| 宝丰县| 永州市| 邓州市| 明溪县| 哈尔滨市| 谢通门县| 灌南县| 高阳县| 桐城市| 丘北县| 五华县| 石台县| 临湘市| 巴林左旗| 临洮县| 大连市| 武城县| 房产| 霍州市| 肥东县|