在使用WebView加載網(wǎng)頁時有時候網(wǎng)速等原因加載比較慢時,為了避免在加載網(wǎng)頁的時候出現(xiàn)一片空白的區(qū)域,給用戶很不好的體驗感,我們往往在加載的時候添加一個進(jìn)度條,使用戶直觀的感受到網(wǎng)頁加載的進(jìn)度,通常我們可以通過WebChromeClient里面的onProgressChanged()方法獲取到當(dāng)前的網(wǎng)頁加載進(jìn)度,但是當(dāng)我們使用時會發(fā)現(xiàn)他的網(wǎng)頁加載進(jìn)度不是一點一點加載的,也許一下就加載到50%下一秒直接加載到80%,如果我們將其設(shè)置給progressBar看起來就很快而且很不順暢,體驗感較差,如下圖所示加載的網(wǎng)頁進(jìn)度:
假如這樣將其進(jìn)度設(shè)置到progressBar的體驗感就相當(dāng)?shù)牟?,如下圖所示:
現(xiàn)在我們希望想要其在加載網(wǎng)頁的時候希望給用戶一種勻速加載的感覺,盡管他不是網(wǎng)頁真正加載的進(jìn)度,但我們只需要在網(wǎng)頁剛開始加載后和網(wǎng)頁加載結(jié)束前模擬一個勻速加載的效果,也就是重寫WebViewClient的onPageStarted()方法,在其中開啟一個定時器,重寫onPageFinished(),將定時器關(guān)閉掉,達(dá)到勻速加載網(wǎng)頁的效果,提到定時器,就不得不說一下相關(guān)的東西了。
簡單來說就分成兩個東西,一個Timer,另外一個就是timer的所要執(zhí)行的計劃或者說是任務(wù)(Task),將這個任務(wù)(task)設(shè)置給定時器(timer),告訴定時器(timer)什么時候執(zhí)行任務(wù)(Task),而任務(wù)就是我們要要干的事,可以這樣說定時器想一個鬧鐘(Timer),任務(wù)相當(dāng)于我們起床(任務(wù)Task),當(dāng)鬧鐘執(zhí)行到我們設(shè)置的時間時(schedule),就提醒我們該起床了
Timer執(zhí)行指定的任務(wù)可以有一下幾種方法
//在指定的時間執(zhí)行指定的任務(wù)。 public void schedule(TimerTask task, Date when) {} //延遲指定時間后執(zhí)行指定的任務(wù) public void schedule(TimerTask task, long delay) {} //按設(shè)置延遲時間和時間間隔重復(fù)執(zhí)行指定的任務(wù) public void schedule(TimerTask task, long delay, long period) {} //在指定的時間和時間間隔重復(fù)執(zhí)行指定的任務(wù) public void schedule(TimerTask task, Date when, long period) {}
網(wǎng)站名稱:使用Timer實現(xiàn)網(wǎng)頁勻速加載的進(jìn)度條樣式-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article38/pccsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計公司、虛擬主機(jī)、網(wǎng)站導(dǎo)航、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容