码迷,mamicode.com
首页 > 其他好文 > 详细

ProgressBar与Handler的整合应用

时间:2015-10-18 07:44:59      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

 在android中进度条使用ProgressBar表示,用于向用户显示某个耗时操作完成的百分比     之ProgressBar与Handler的整合应用

1.在xml文件中通过<ProgressBar>标记添加,表示基本如下:

1 <ProgressBar        
2 android:id="@+id/progressBar1"        
style
="?android:attr/progressBarStyleHorizontal"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content" />

部分xml属性如下:

android:max-->设置进度条的最大值
android:progress-->指定进度条已经完成的进度值
android:progressDrawable-->设置进度条轨道的绘制形式

关于progressBar的style

style="?android:attr/progressBarStyleHorizontal"    细长水平进度条
style="?android:attr/progressBarStyleLarge"         大原型水平进度条

 setIndeterminate  设置indeterminate为false 滚动条告知自己正在忙碌,若为true,则可以根据进度设置进度值

代码如下

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    
tools:context=".MainActivity" >    
<TextView       
 android:id="@+id/tv1"        
android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    
<ProgressBar       
 android:id="@+id/pb"        
android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/tv1"        
android:visibility="gone" />    
<Button        
android:id="@+id/btn"       
 android:layout_width="wrap_content"        android:layout_height="wrap_content"        
android:text="点击"       
 android:layout_below="@id/pb" />
</RelativeLayout>
MainActivity.java
public class MainActivity extends Activity {    
private TextView tv1;    private ProgressBar pb;    
private Button btn;    
private int count;
@Override    
protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                
tv1 = (TextView) findViewById(R.id.tv1);        
pb = (ProgressBar) findViewById(R.id.pb);        
btn = (Button) findViewById(R.id.btn);        
//调用setIndeterminate设置indeterminate为false 滚动条告知自己正在忙碌,若为true,则可以根据进度设置进度值        pb.setIndeterminate(false);                btn.setOnClickListener(new View.OnClickListener() {                        
@Override            
public void onClick(View v) {                
//点击按钮,ProgressBar显示                pb.setVisibility(View.VISIBLE);                
//指定ProgressBar最大值为100                pb.setMax(100);                
//指定初始值为0                pb.setProgress(0);                                
//开启线程,更改ProgressBar的值                
new Thread (new Runnable() {                                                                                
@Override public void run() { for (int i = 0; i
< 10; i++) { try { count = (i + 1)*20;
Thread.sleep(1000); //线程运行5秒后结束 if (i
== 4) {
Message msg
= new Message();
msg.what
= 0;
handle.sendMessage(msg);
break;
}else{ Message msg
= new Message();
msg.what
= 1;

handle.sendMessage(msg);
} } catch (Exception e) {
} } } }).start(); } }); } Handler handle
= new Handler(){ public void handleMessage(Message msg) { switch (msg.what) { case 0: tv1.setText("数据加载完毕"); //设置ProgressBar隐藏
pb.setVisibility(View.GONE); //线程中断

Thread.currentThread().interrupt();
break; case 1: if (!Thread.currentThread().interrupted()) {
pb.setProgress(count); //将进度显示在setText中
tv1.setText("
==================");

} break; default: break; } }; };

 

ProgressBar与Handler的整合应用

标签:

原文地址:http://www.cnblogs.com/SamSarah/p/4888853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!