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.
說說Python中的垃圾回收機制?
2.
螞蟻金服面試分享,阿里的offer真的不難,3位朋友全部offer
3.
Spring Boot (三十一)——自定義歡迎頁及favicon
4.
Spring Boot核心架構
5.
IDEA創建maven web工程
6.
在IDEA中利用maven創建java項目和web項目
7.
myeclipse新導入項目基本配置
8.
zkdash的安裝和配置
9.
什麼情況下會導致Python內存溢出?要如何處理?
10.
CentoOS7下vim輸入中文
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
如何將進度條進行開始和暫停的操作?
2.
在spring中實現quartz的動態調度(開始、暫停、中止等)
3.
WPF控制動畫開始、停止、暫停和恢復
4.
Android中使用ProgressBar實現進度條
5.
Unity中游戲暫停和開始怎麼實現?
6.
ProgressBar(進度條)的實例
7.
C#中的進度條ProgressBar
8.
MFC 通過定時器實現space鍵的暫停和開始
9.
ProgressBar--進度條
10.
ProgressBar進度條
>>更多相關文章<<