标签:
消息机制
main.xml文件代码。
<LinearLayout 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" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyle" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ProgressBar android:id="@+id/progressBar2" style="?android:attr/progressBarStyleHorizontal" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleLarge" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ProgressBar android:id="@+id/progressBar4" style="?android:attr/progressBarStyleSmall" android:layout_width="match_parent" android:visibility="gone"//让进度条在一开始的时候处于隐藏状态 android:layout_height="wrap_content" /> <ProgressBar android:id="@+id/progressBar5" style="?android:attr/progressBarStyleSmallInverse" android:layout_width="match_parent" android:visibility="gone" android:layout_height="wrap_content" /> <Button android:id="@+id/but" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示进度条" /> </LinearLayout>下面先对进度条属性进行以下说明:
1、style="?android:attr/progressBarStyleSmall"代表小号圆形进度条。
2、style="?android:attr/progressBarStyleLarge"代表超大号圆形进度条。
3、style="?android:attr/progressBarStyleHorizontal"代表长形进度条。
MainActivity.java文件内容。
package com.example.inforcontact3; import android.app.Activity; import android.content.res.Resources.Theme; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class MainActivity extends Activity { //定义事件处理标示 public static final int CONTINUE = 1; public static final int STOP = 2; //定义进度条组件 private ProgressBar bar1, bar2, bar3, bar4, bar5; private Button but; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bar1 = (ProgressBar)findViewById(R.id.progressBar1); bar2 = (ProgressBar)findViewById(R.id.progressBar2); bar3 = (ProgressBar)findViewById(R.id.progressBar3); bar4 = (ProgressBar)findViewById(R.id.progressBar4); bar5 = (ProgressBar)findViewById(R.id.progressBar5); but = (Button)findViewById(R.id.but); but.setOnClickListener(new OnClickListenerImpl()); } private class OnClickListenerImpl implements OnClickListener { @Override public void onClick(View v) { //显示进度条 bar1.setVisibility(View.VISIBLE); bar2.setVisibility(View.VISIBLE); bar3.setVisibility(View.VISIBLE); bar4.setVisibility(View.VISIBLE); bar5.setVisibility(View.VISIBLE); //设置进度条的长度 bar1.setMax(120); bar2.setMax(120); //设置进度条开始的位置 bar1.setProgress(0); bar2.setProgress(0); //创建一个子线程 new Thread(new Runnable() { @Override public void run() { int count = 0; for (int i = 0; i < 10; i++) { //让进度快一点 count = (i + 1) * 20; try { //设置进度条增加的时间间隔 Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } if (i == 6) { //i == 6时隐藏进度条 Message msg = new Message(); msg.what = STOP; //立即发送信息,并且调用handleMessage()方法处理信息 MessageHandler.sendMessage(msg); } else { Message msg = new Message(); msg.what = CONTINUE; msg.arg1 = count; MessageHandler.sendMessage(msg); } } } }).start();//开启线程 } } private Handler MessageHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case STOP: bar1.setVisibility(View.GONE); bar2.setVisibility(View.GONE); bar3.setVisibility(View.GONE); bar4.setVisibility(View.GONE); bar5.setVisibility(View.GONE); //线程中断 Thread.currentThread().isInterrupted(); break; case CONTINUE: //表示当前线程没有中断 if (!Thread.currentThread().isInterrupted()) { bar1.setProgress(msg.arg1); bar2.setProgress(msg.arg1); } break; } } }; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/leng1235/article/details/47404807