main.xml

<?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"      android:layout_width="fill_parent"       android:layout_height="fill_parent">            <TextView          android:layout_width="fill_parent"           android:layout_height="wrap_content"          android:text="Welcome to Mr Wei's blog" />       <ProgressBar          android:id="@+id/rectangleProgressBar"           style="?android:attr/progressBarStyleHorizontal" mce_style="?android:attr/progressBarStyleHorizontal"            android:layout_width="fill_parent"          android:layout_height="wrap_content"         android:visibility="gone"         />     <ProgressBar          android:id="@+id/circleProgressBar"           style="?android:attr/progressBarStyleLarge" mce_style="?android:attr/progressBarStyleLarge"         android:layout_width="wrap_content"          android:layout_height="wrap_content"         android:visibility="gone"          />           <Button android:id="@+id/button"              android:text="Show ProgressBar"               android:layout_width="wrap_content"              android:layout_height="wrap_content"             /> </LinearLayout> 



public class ProgressBarDemo extends Activity {private ProgressBar rectangleProgressBar, circleProgressBar;private Button mButton;protected static final int STOP = 0x10000;protected static final int NEXT = 0x10001;private int iCount = 0;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.progress_bar_demo);// findView By idrectangleProgressBar = (ProgressBar) findViewById(R.id.rectangleProgressBar);circleProgressBar = (ProgressBar) findViewById(R.id.circleProgressBar);mButton = (Button) findViewById(R.id.button);rectangleProgressBar.setIndeterminate(false);circleProgressBar.setIndeterminate(true);mButton.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {rectangleProgressBar.setVisibility(View.VISIBLE);circleProgressBar.setVisibility(View.VISIBLE);rectangleProgressBar.setMax(100);rectangleProgressBar.setProgress(0);circleProgressBar.setProgress(0);new IncreaseThread().start();}});}// 定义一个Handlerprivate Handler mHandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case STOP:rectangleProgressBar.setVisibility(View.GONE);circleProgressBar.setVisibility(View.GONE);Thread.currentThread().interrupt();break;case NEXT:if (!Thread.currentThread().isInterrupted()) {rectangleProgressBar.setProgress(iCount);circleProgressBar.setProgress(iCount);}break;}}};// 每秒步长为5增加,到100%时停止class IncreaseThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 20; i++) {try {iCount = (i + 1) * 5;Thread.sleep(1000);if (i == 19) {Message msg = new Message();msg.what = STOP;mHandler.sendMessage(msg);break;} else {Message msg = new Message();msg.what = NEXT;mHandler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();}}}}}

更多相关文章

  1. Android 各种自定义进度条Progressbar
  2. Momo自定义DialogFragment
  3. 自定义Android editText
  4. Android创建自定义键盘
  5. Android系统自带主题的使用及自定义主题

随机推荐

  1. c语言float类型小数点后有几位有效数字?
  2. c语言最小生成树的实现
  3. .Net Core如何读取Json配置文件
  4. java与c哪个简单?
  5. .NET中async异步、thread多线程
  6. c++换行符有哪些
  7. c++如何实现字符串分割函数split?(代码示例
  8. c语言是一种什么编译形式的语言
  9. 深入了解数组、List和ArrayList的区别
  10. c++怎么运行