1、在布局文件中添加ProgressBar
<ProgressBarandroid:id="@+id/progressbar"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"android:layout_marginTop="150dp"/>
其中**style=“@android:style/Widget.ProgressBar.Horizontal”**設置進度條樣式為水平進度條,否則默認原型旋轉的進度條;
max設置進度條長度,這里設置為100。
2、java代碼:
聲明ProgressBar;int型的mprogress表示進度條進度;Handler對象處理子線程消息
通過id獲取布局中的ProgressBar;
progressBar=findViewById(R.id.progressbar);
用Handler模擬子線程耗時操作
mhandler=newHandler(){@OverridepublicvoidhandleMessage(@NonNullMessagemsg){super.handleMessage(msg);if(msg.what==0x111){progressBar.setProgress(mprogress);//進度條未完成時,更新進度條}else{Toast.makeText(ProgressActivity.this,"耗時操作完成",Toast.LENGTH_LONG).show();progressBar.setVisibility(View.GONE);//設置進度條消失}}};
1、Handlerd需要重寫handleMessage()方法,參數為子線程傳來的msg.
2、msg.what==0x111表示消息是0x111,則進度條未完成,此時需要通過 progressBar.setProgress(mprogress)來更新進度條。
3、msg是其他時則表示進度條完成,這里只彈出Toast,也可以進行其他操作。
開啟子線程更新UI
newThread(newRunnable(){@Overridepublicvoidrun(){while(true){//進度更新mprogress=doWork();Messagemessage=newMessage();if(mprogress<100){message.what=0x111;//進度條未完成時的message設置為0x111mhandler.sendMessage(message);//向handler發送消息}else{message.what=0x110;//進度條完成時的message設置為0x110mhandler.sendMessage(message);//向handler發送消息break;//進度完成跳出循環}}}privateintdoWork(){mprogress=(int)(mprogress+Math.random()*10);try{Thread.sleep(200);//線程休息200ms}catch(InterruptedExceptione){e.printStackTrace();}returnmprogress;}}).start();
1、在子線程中通過doWork()方法模擬耗時操作
2、doWork()方法改變mprogress的值即可,用來模擬進度條進度的值
3、需要一個Message對象將消息返回給主線程,
4、當mprogress<100即進度條未完成時,設置message.what=0x111->對應當進度條未完成時,給主線程發送的message是0x111。
當mprogress>100即進度條完成時,設置message.what=0x110->對應當進度條完成時,給主線程發送的message是0x110。這里message.what的值可以隨意設置,不一定非要0x111,0x110。
5、 設置完message之后需要向主線程發送message,即mhandler.sendMessage(message);
以上運行即可實現一個簡單進度條。
以上就是“android如何實現簡單進度條ProgressBar效果”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
今日加拿大元對人民幣匯率表當前匯率5.1787加拿大元100人民幣517.8700Tips:100加拿大元兌換517.8700人民幣匯率更新時間:2022/10/99:21:482022年9月30日銀行間外匯市場人民幣匯率中間價為:1美元對人民幣7.0998元,1歐元對人民幣6.9892元,100日元對人民幣4.9276元,1港元對人民幣0.90444元,1英鎊對人民幣7.9481元,1澳大利亞元...
(資料圖片)關于dnf打孔在哪的知識大家了解嗎?以下就是小編整理的關于dnf打孔在哪的介紹,希望可以給到大家一些參考,一起來了解下吧!dnf打孔是指給裝備開啟徽章鑲嵌欄,那么具體該去哪里打孔呢?這里就給大家帶來dnf打孔在哪的詳細介紹,希望對大家有所幫助。玩家可以通過在NPC達芙妮商店中購買鑲嵌欄開啟裝置給裝備打孔。達芙妮位置:位于阿拉德大陸西海岸的羅杰旁邊。高等徽章獲得方法:1、分解時裝獲得;2...
(資料圖片僅供參考)隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如四庫全書寫的是什么,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!《四庫全書》全稱《欽定四庫全書》。是在乾隆皇帝的主持下,由紀昀等360多位高官、學者耗時十三年編成的叢書。分經、史、子、集四部,故名四庫?!端膸烊珪钒凑諆热莘诸惙纸?、史、子、集四部分。1、經部收錄儒家“十三經”及相關著作,...