JavaShuo
欄目
標籤
Handler和ProgressBar實現進度條的開始,暫停,中止,後退和循環
時間 2019-12-17
標籤
handler
progressbar
實現
進度
開始
暫停
中止
後退
循環
简体版
原文
原文鏈接
一,涉及的handler類方法
html
1,
java
post
(
Runnable
r)
android
Causes the Runnable r to be added to the message queue.將要執行的線程對象加到隊列當中
2,
removeCallbacks
(
Runnable
r)
Remove any pending posts of Runnable r that are in the message queue.移除隊列當中未執行的線程對象
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.
將要執行的線程對象放入到隊列當中,待時間結束後,運行制定的線程對象
二,編寫程序
程序效果:實現進度條的開始,暫停,中止,後退和循環
主activity
[java]
view plain
copy
package
com.song;
import
android.app.Activity;
import
android.os.Bundle;
import
android.os.Handler;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.ProgressBar;
public
class
C93_Handler3Activity
extends
Activity {
/** Called when the activity is first created. */
ProgressBar bar;
Button start,pause,back,stop;
Handler handler;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
handler=
new
Handler();
bar=(ProgressBar)findViewById(R.id.bar);
start=(Button)findViewById(R.id.start);
pause=(Button)findViewById(R.id.pause);
back=(Button)findViewById(R.id.back);
stop=(Button)findViewById(R.id.stop);
start.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
//開始按鈕,將要執行的線程對象放到隊列當中
handler.post(runnable);
}
});
pause.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
//暫停按鈕,刪除隊列當中未執行的線程對象
handler.removeCallbacks(runnable);
}
});
back.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
if
(prolength!=
0
)
{
prolength=bar.getProgress()-
1
;
bar.setProgress(prolength);
setTitle(String.valueOf(prolength));
}
}
});
stop.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
handler.removeCallbacks(runnable);
bar.setProgress(
0
);
setTitle(String.valueOf(
0
));
}
});
}
int
prolength=
0
;
//定義進程度
//定義線程
Runnable runnable=
new
Runnable() {
@Override
public
void
run() {
// TODO Auto-generated method stub
prolength=bar.getProgress()+
1
;
bar.setProgress(prolength);
setTitle(String.valueOf(prolength));
//若是進度小於100,則延遲1000毫秒以後重複執行runnable
if
(prolength<
100
)
{
handler.postDelayed(runnable,
1000
);
}
//不然,都置零,線程從新執行
else
{
bar.setProgress(
0
);
setTitle(String.valueOf(
0
));
handler.post(runnable);
}
}
};
}
佈局文件
[html]
view plain
copy
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:orientation
=
"vertical"
>
<
ProgressBar
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:id
=
"@+id/bar"
style
=
"
@android
:style/Widget.ProgressBar.Horizontal"
/>
<
LinearLayout
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:orientation
=
"horizontal"
>
<
Button
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_weight
=
"2"
android:id
=
"@+id/start"
android:text
=
"開始"
/>
<
Button
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_weight
=
"2"
android:id
=
"@+id/pause"
android:text
=
"暫停"
/>
<
Button
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_weight
=
"2"
android:id
=
"@+id/back"
android:text
=
"後退"
/>
<
Button
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_weight
=
"2"
android:id
=
"@+id/stop"
android:text
=
"中止"
/>
</
LinearLayout
>
</
LinearLayout
>
顯示效果
相關文章
1.
如何將進度條進行開始和暫停的操作?
2.
在spring中實現quartz的動態調度(開始、暫停、中止等)
3.
WPF控制動畫開始、停止、暫停和恢復
4.
Android中使用ProgressBar實現進度條
5.
Unity中游戲暫停和開始怎麼實現?
6.
ProgressBar(進度條)的實例
7.
C#中的進度條ProgressBar
8.
MFC 通過定時器實現space鍵的暫停和開始
9.
ProgressBar--進度條
10.
ProgressBar進度條
更多相關文章...
•
現實生活中的 XML
-
XML 教程
•
ASP.NET Razor - C# 循環和數組
-
ASP.NET 教程
•
☆基於Java Instrument的Agent實現
•
TiDB 在摩拜單車在線數據業務的應用和實踐
相關標籤/搜索
中和
暫停
停止
SSM和Redis實現
循環
progressbar
飽和度
退現
後退
退後
XLink 和 XPointer 教程
紅包項目實戰
Spring教程
調度
後端
註冊中心
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
shell編譯問題
2.
mipsel 編譯問題
3.
添加xml
4.
直方圖均衡化
5.
FL Studio鋼琴卷軸之畫筆工具
6.
中小企業爲什麼要用CRM系統
7.
Github | MelGAN 超快音頻合成源碼開源
8.
VUE生產環境打包build
9.
RVAS(rare variant association study)知識
10.
不看後悔系列!DTS 控制檯入門一本通(附網盤鏈接)
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
如何將進度條進行開始和暫停的操作?
2.
在spring中實現quartz的動態調度(開始、暫停、中止等)
3.
WPF控制動畫開始、停止、暫停和恢復
4.
Android中使用ProgressBar實現進度條
5.
Unity中游戲暫停和開始怎麼實現?
6.
ProgressBar(進度條)的實例
7.
C#中的進度條ProgressBar
8.
MFC 通過定時器實現space鍵的暫停和開始
9.
ProgressBar--進度條
10.
ProgressBar進度條
>>更多相關文章<<