亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android ProgressDialog進(jìn)度條使用詳解

 更新時(shí)間:2016年02月13日 22:00:19   投稿:lijiao  
這篇文章主要對Android開發(fā)之ProgressDialog讀取文件進(jìn)度進(jìn)行解析,感興趣的朋友可以參考一下

進(jìn)度條以一種客觀化的方式,讓我們知道程序正在執(zhí)行的情況,在程序需要時(shí)間執(zhí)行任務(wù)的時(shí)候,提示進(jìn)度條友好的告訴用戶說,當(dāng)前任務(wù)還沒有完成,請稍稍等待,進(jìn)度條經(jīng)常使用在APP下載應(yīng)用、更新應(yīng)用、加載網(wǎng)絡(luò)數(shù)據(jù)中,使用頻繁,常見的進(jìn)度條有ProgressDialog、ProgressBar,這里只要介紹ProgressDialog。
ProgressDialog讀取文件進(jìn)度解析主要涉及到一個(gè)知識:

  • Handler消息處理機(jī)制,
  • 文件字節(jié)流的操作,
  • ProgressDialog類的使用

1、Handler消息處理機(jī)制

Handler消息處理機(jī)制,接收子線程傳遞過來的消息,根據(jù)消息傳遞值,執(zhí)行UI界面更新操作,目的防止阻塞主線程,使用最多的是sendEmptyMessage(int)、sendMessage(int),因?yàn)榻?jīng)常需要只要,所以記住第一個(gè)Handler代碼的寫法,后面沒次都可以復(fù)制過來用,如下:

Handler handler = new Handler() { 
 
    @Override 
    public void handleMessage(Message msg) { 
      switch (msg.what) { 
      case 110://根據(jù)what值,執(zhí)行UI更新操作 
        progressValue += msg.arg1; 
        sb.append(msg.obj); 
        mTextView.setText(sb.toString());//TextView顯示讀取內(nèi)容 
        mDialog.setProgress(progressValue);//設(shè)置進(jìn)度條當(dāng)前值 
        if (progressValue == 100) {//判讀是否讀取結(jié)束 
           
          mDialog.dismiss(); 
          Toast.makeText(MainActivity.this, "讀取完成!", Toast.LENGTH_SHORT).show(); 
        } 
         
        break; 
 
      } 
    } 
 
  }; 

2、文件字節(jié)流的操作

輸入輸出流的內(nèi)容,看來也不是想象中的那么難,在《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》一書中分為:File類、文件字節(jié)流、文件字符流、緩沖流、文件對話框、隨機(jī)流、數(shù)組流、數(shù)據(jù)流帶進(jìn)度條的輸入流、對象流,經(jīng)常會忘記它們對應(yīng)的類,使用起來容易混亂,下面分別寫一個(gè)簡單例子:

1)、File類

File path = Environment.getExternalStorageDirectory();//獲取sdcard根路徑 
File file = new File(path + "/ProgressMonitor.txt");//讀取根路徑下的ProgressMonitor文件 

2)、文件字節(jié)流

private void readFromFile(String path) { 
    FileInputStream fis; 
    DataInputStream dis; 
    try { 
      fis = new FileInputStream(path); 
      dis = new DataInputStream(fis); 
      byte b[] = new byte[10];// 每次讀取10字節(jié) 
      while ((readed = dis.read(b)) != -1) { 
        Message msg = new Message(); 
        String str=new String(b,0,readed); 
        msg.obj=str; 
        msg.arg1 = readed; 
        msg.what = 110; 
        handler.sendMessage(msg); 
        try { 
          Thread.sleep(1000); 
        } catch (Exception e) { 
 
          e.printStackTrace(); 
        } 
 
      } 
 
    } catch (FileNotFoundException e) { 
 
      e.printStackTrace(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    }finally { 
      try { 
        dis.close(); 
        fis.close(); 
      } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
      } 
    } 
 
  } 

3、ProgressDialog的使用

ProgressDialog繼承AlertDialog,AlertDialog繼承Dialog,常用的屬性有:

mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);/進(jìn)度條樣式 
mDialog.setMax(100);//進(jìn)度條最大值 
mDialog.setTitle("系統(tǒng)提示");//進(jìn)度條標(biāo)題 
mDialog.setIcon(R.drawable.ic_launcher);//進(jìn)度條圖標(biāo) 
mDialog.setMessage("正在讀取文件,請稍等。。。");//進(jìn)度條提示信息 
 
mDialog.setProgress(progressValue);//進(jìn)度條當(dāng)前值 
mDialog.dismiss();//進(jìn)度條消失 

完整代碼:

private static final int STYLE_HORIZONTAL = 110; 
private static final int STYLE_SPINNER = 111; 
private void progressDialogStyle(int id) { 
    switch (id) { 
    case STYLE_SPINNER: 
      mDialog = new ProgressDialog(this, ProgressDialog.STYLE_SPINNER); 
      break; 
    case STYLE_HORIZONTAL: 
      mDialog = new ProgressDialog(this); 
      mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
      break; 
 
    default: 
      break; 
    } 
 
    mDialog.setMax(100); 
    mDialog.setTitle("系統(tǒng)提示"); 
    mDialog.setIcon(R.drawable.ic_launcher); 
    mDialog.setMessage("正在讀取文件,請稍等。。。"); 
  } 

ProgressDialog類可以制作平時(shí)常見的進(jìn)度條效果,如果需要更多進(jìn)度條式樣,可以重寫ProgressDialog提供的方法或者繼承AlertDialog自定義樣式。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • Android Studio3.0.1填坑筆記

    Android Studio3.0.1填坑筆記

    IntelliJ IDEA 功能強(qiáng)大,是Jet Brains 公司開發(fā)商業(yè)IDE(集成開發(fā)環(huán)境),同時(shí)支持Java, Scala 和Groovy。下面小編給大家?guī)砹薃ndroid Studio3.0.1填坑筆記,需要的朋友一起看看吧
    2018-01-01
  • 解析Android資源文件及他們的讀取方法詳解

    解析Android資源文件及他們的讀取方法詳解

    本篇文章是對Android資源文件及他們的讀取方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Android studio 運(yùn)行main 函數(shù)的方法

    Android studio 運(yùn)行main 函數(shù)的方法

    這篇文章主要介紹了Android studio 運(yùn)行main 函數(shù)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • android LabelView實(shí)現(xiàn)標(biāo)簽云效果

    android LabelView實(shí)現(xiàn)標(biāo)簽云效果

    這篇文章主要為大家詳細(xì)介紹了android LabelView實(shí)現(xiàn)標(biāo)簽云效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android ProgressDialog的實(shí)例詳解

    Android ProgressDialog的實(shí)例詳解

    這篇文章主要介紹了Android ProgressDialog的實(shí)例詳解的相關(guān)資料,Android 開發(fā)項(xiàng)目的時(shí)候經(jīng)常會遇到耗時(shí)的操作,這里就講下Android ProgressDialog的應(yīng)用,需要的朋友可以參考下
    2017-07-07
  • Android實(shí)現(xiàn)簡單的照相功能

    Android實(shí)現(xiàn)簡單的照相功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡單的照相功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 代碼分析Android消息機(jī)制

    代碼分析Android消息機(jī)制

    本文通過代碼實(shí)例詳細(xì)分析了Android消息機(jī)制的相關(guān)知識點(diǎn),對此有需要的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • 5種方法完美解決android軟鍵盤擋住輸入框方法詳解

    5種方法完美解決android軟鍵盤擋住輸入框方法詳解

    我們在開發(fā)android APP中經(jīng)常會遇到鍵盤擋住輸入框的情況,必須先把鍵盤收起,再去獲取下面輸入框焦點(diǎn),這樣用戶體驗(yàn)也非常不好,今天就給大家介紹5種完美解決android鍵盤擋住輸入框的方法
    2018-03-03
  • Android自定義popupwindow實(shí)例代碼

    Android自定義popupwindow實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了Android自定義popupwindow實(shí)例代碼,popupwindow彈出菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android實(shí)現(xiàn)第三方授權(quán)登錄、分享以及獲取用戶資料

    Android實(shí)現(xiàn)第三方授權(quán)登錄、分享以及獲取用戶資料

    本篇文章介紹了Android實(shí)現(xiàn)第三方授權(quán)登錄、分享以及獲取用戶資料,詳細(xì)的介紹了第三方授權(quán)登錄的實(shí)現(xiàn)代碼,有需要的朋友可以了解一下。
    2016-11-11

最新評論