Android实例,更新进度条,进度条应用。

男娘i 2023-07-04 08:44 83阅读 0赞

效果如下:
在这里插入图片描述
在这里插入图片描述

activity_main.xml文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:background="@mipmap/bj4"
  7. android:paddingBottom="@dimen/activity_vertical_margin"
  8. android:paddingLeft="@dimen/activity_horizontal_margin"
  9. android:paddingRight="@dimen/activity_horizontal_margin"
  10. android:paddingTop="@dimen/activity_vertical_margin"
  11. tools:context="com.mingrisoft.startgame.MainActivity">
  12. <ProgressBar
  13. android:id="@+id/pg"
  14. android:layout_width="match_parent"
  15. android:layout_height="wrap_content"
  16. style="@android:style/Widget.ProgressBar.Horizontal"
  17. android:max="100"
  18. android:layout_alignParentBottom="true"
  19. android:layout_marginBottom="50dp"/>
  20. </RelativeLayout>

MainActivity.java文件

  1. package com.mingrisoft.startgame;
  2. import android.os.Message;
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.WindowManager;
  7. import android.widget.ProgressBar;
  8. import android.os.Handler;
  9. import android.widget.Toast;
  10. import java.util.logging.LogRecord;
  11. public class MainActivity extends ActionBarActivity {
  12. private ProgressBar progressBar;
  13. //当前进度
  14. private int mProgress=0;
  15. //消息处理
  16. private Handler mHandler;
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. //全屏显示
  22. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  23. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  24. progressBar= (ProgressBar) findViewById(R.id.pg);
  25. //消息处理机制
  26. mHandler=new Handler() {
  27. @Override
  28. public void handleMessage(Message msg) {
  29. if(msg.what==0x111){
  30. //更新进度条
  31. progressBar.setProgress(mProgress);
  32. }
  33. else
  34. {
  35. //显示更新完成,进度条不再显示。
  36. Toast.makeText(MainActivity.this, "耗时操作已完成", Toast.LENGTH_SHORT).show();
  37. progressBar.setVisibility(View.GONE);
  38. }
  39. }
  40. };
  41. //创建一个线程,模拟耗时操作,并发出消息
  42. new Thread(new Runnable() {
  43. @Override
  44. public void run() {
  45. while(true)
  46. {
  47. mProgress=doWork();
  48. Message m=new Message();
  49. if(mProgress<100){
  50. m.what=0x111;//耗时操作未完成,为自定义代码,一般以0x开头
  51. mHandler.sendMessage(m);
  52. }
  53. else
  54. {
  55. m.what=0x110;//耗时操作已完成
  56. mHandler.sendMessage(m);
  57. break;
  58. }
  59. }
  60. }
  61. private int doWork()
  62. {
  63. mProgress+=Math.random()*10;
  64. try {
  65. Thread.sleep(200);
  66. } catch (InterruptedException e) {
  67. e.printStackTrace();
  68. }
  69. return mProgress;
  70. }
  71. }).start();//开始线程
  72. }
  73. }

完成啦!

发表评论

表情:
评论列表 (有 0 条评论,83人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android进度

    ProgressBar:进度条。系统提供四种类型进度条,大、中、小圆形进度条和条形进度条 更换成条形进度条类型的代码: ![Center][] 实现进度条还需在ja