通過MediaPlayer調(diào)節(jié)。
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括蕭縣網(wǎng)站建設(shè)、蕭縣網(wǎng)站制作、蕭縣網(wǎng)頁制作以及蕭縣網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蕭縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蕭縣省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
系統(tǒng)自帶的進(jìn)度條的顏色比較單調(diào),實(shí)際開發(fā)中使用較少,可以自定義進(jìn)度條背景,新建一個(gè)progressbarbg.xml文件。gradient可以設(shè)置進(jìn)度條的漸變色,android:endColor和android:startColor可以設(shè)置漸變開始和結(jié)束的顏色。定義完成以后,便可以使用。
在音樂進(jìn)度,網(wǎng)絡(luò)下載時(shí),需動(dòng)態(tài)加載進(jìn)度條,默認(rèn)情況下,設(shè)置進(jìn)度條,使用setProgress即可。但有時(shí)除了動(dòng)態(tài)設(shè)置進(jìn)度,仍需要?jiǎng)討B(tài)設(shè)置進(jìn)度條顏色通過MediaPlayer播放音樂并獲取進(jìn)度,設(shè)置進(jìn)度。
顯示百分比需要自己計(jì)算加載的內(nèi)容,以下以webview示例,webview加載網(wǎng)頁的時(shí)候可以增加進(jìn)度條:
1.從webview中獲取設(shè)置
websettings
sws
=
webview.getsettings();
sws.setsupportzoom(true);
sws.setbuiltinzoomcontrols(true);
webview.setinitialscale(25);
webview.getsettings().setusewideviewport(true);
2.注冊(cè)setwebchromeclient事件
webview.setwebchromeclient(new
webchromeclient()
{
public
void
onprogresschanged(webview
view,
int
progress)
{
//
activity和webview根據(jù)加載程度決定進(jìn)度條的進(jìn)度大小
//
當(dāng)加載到100%的時(shí)候
進(jìn)度條自動(dòng)消失
//webviewprogressactivity.this.settitle("loading...");
//webviewprogressactivity.this.setprogress(progress
*
100);
if
(progress
==
100)
{
progressbar.setvisibility(view.gone);
//webviewprogressactivity.this.settitle("完成");
}
}
});
3.注意在onprogresschanged中處理進(jìn)度,progress就是進(jìn)度值。
由于Android的界面更新只能通過自己的UI線程進(jìn)行操作,所以我們需要用到Handler在進(jìn)行更新界面的操作。
1、聲明變量
private Handler handler = new Handler();
private ProgressDialog progressDialog = null;
2、在開始進(jìn)行網(wǎng)絡(luò)連接時(shí)顯示進(jìn)度條對(duì)話框
progressDialog = ProgressDialog.show(MyActivity.this, "請(qǐng)稍等...", "獲取數(shù)據(jù)中...", true);
3、在handler.post中進(jìn)行界面更新
public void setListAdapter(){
handler.post(new Runnable() {
public void run() {
//將獲取到的數(shù)據(jù)更新到列表中
MyListView.setAdapter(saImageItems);
}
}
});
4、開個(gè)新的線程進(jìn)行網(wǎng)絡(luò)連接獲取數(shù)據(jù)
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//向服務(wù)器請(qǐng)求數(shù)據(jù)
mapList=MyAPI.getAllDatas();
setListAdapter(mapList);
//更新完列表數(shù)據(jù),則關(guān)閉對(duì)話框
progressDialog.dismiss();
}}).start();
整個(gè)過程就這樣完成了,下面是效果圖:
①首先在XML進(jìn)行布局
progressBar
android:id="@+id/progressbar_updown"
android:layout_width="200dp"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:layout_gravity="center_vertical"
android:max="100"
android:progress="50"
android:secondaryProgress="70"
②代碼中運(yùn)用
private
ProgressBar
myProgressBar;
//定義ProgressBar
myProgressBar
=
(ProgressBar)
findViewById(R.id.progressbar_updown);
//ProgressBar通過ID來從XML中獲取
myProgressBar.incrementProgressBy(5);
//ProgressBar進(jìn)度值增加5
myProgressBar.incrementProgressBy(-5);
//ProgressBar進(jìn)度值減少5
myProgressBar.incrementSecondaryProgressBy(5);
Handler和ProgressBar實(shí)現(xiàn)進(jìn)度條的開始,暫停,停止,后退和循環(huán)
一,涉及的handler類方法
1,
post(Runnable r)
Causes the Runnable r to be added to the message queue.將要執(zhí)行的線程對(duì)象加到隊(duì)列當(dāng)中
2,
removeCallbacks(Runnable r)
Remove any pending posts of Runnable r that are in the message queue.移除隊(duì)列當(dāng)中未執(zhí)行的線程對(duì)象
3,
postDelayed(Runnable r, long delayMillis)
Causes the Runnable r to be added to the message queue, to be run after the specified amount of time elapses.
將要執(zhí)行的線程對(duì)象放入到隊(duì)列當(dāng)中,待時(shí)間結(jié)束后,運(yùn)行制定的線程對(duì)象
二,編寫程序
程序效果:實(shí)現(xiàn)進(jìn)度條的開始,暫停,停止,后退和循環(huán)
想整個(gè)雙向的進(jìn)度條,就是可以選取播放范圍的。
像這樣:
然而官方控件里只有單向的。不要慌,我們自己畫一個(gè)。
繪制一個(gè)進(jìn)度條主要是三方面。1.樣式,2.尺寸,3.操作監(jiān)聽。
注釋基本上就把原理說明了一下。
然后就可以在程序中使用了。
相關(guān)GitHub項(xiàng)目地址:
網(wǎng)站題目:android的進(jìn)度條,android顯示正在加載進(jìn)度條
文章分享:http://www.rwnh.cn/article2/dsdjsoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、商城網(wǎng)站、定制開發(fā)、做網(wǎng)站、全網(wǎng)營銷推廣、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)