进度条是一种非常实用的组件,下面我们来学习一下如何实用进度条


 android提供了几个进度条的样式:

   

  • Widget.ProgressBar.Horizontal
  • Widget.ProgressBar.Small
  • Widget.ProgressBar.Large
  • Widget.ProgressBar.Inverse
  • Widget.ProgressBar.Small.Inverse
  • Widget.ProgressBar.Large.Inverse


ProgressBar组件的特有xml属性:


下面通过案例来学习ProgressBar

(1)编写布局文件  activity_main.xml

               


(2)编写MainActivity.java

     由于要更新主线程UI,因此需要定义Handler来更新主线程

package com.example.progressbar;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.Menu;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends Activity {private ProgressBar progressBar = null;  //定义ProgressBarprivate TextView textView = null; //定义TextViewprivate static final int PROGRESS = 0x1;private int mProgressStatus =20; //当前进度private Handler mHandler = new Handler();  //定义Handler,用于更新主线程UI@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取布局组件this.progressBar = (ProgressBar) findViewById(R.id.progress1); this.textView = (TextView) findViewById(R.id.proText);//开启线程new Thread(new Runnable() {@Overridepublic void run() { while (mProgressStatus < 100) {                     mProgressStatus = doWork();                     //更新进度条和进度内容                     mHandler.post(new Runnable() {                         public void run() {                         progressBar.setProgress(mProgressStatus);                         textView.setText("当前进度:"+mProgressStatus+"%");                         }                     });                 }}}).start();}private int doWork(){mProgressStatus = mProgressStatus+1;try{Thread.sleep(100);}catch(Exception e){e.printStackTrace();}return mProgressStatus;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

运行后,效果如下:


更多相关文章

  1. java后台接收android客户端通过http方式发送的数据
  2. android 实现自定义隐藏式菜单
  3. Android(安卓)TextView 给文本中指定片段添加自定义点击事件
  4. android评分条RatingBar自定义设置
  5. Android在程序中动态生成控件,动态布局
  6. android自定义ProgressBar
  7. 2.4.4 进度条
  8. Android自定义View之一:初探实例
  9. Android(安卓)Studio使用AIDL时无法找到自定义的类

随机推荐

  1. Android setLayerType 硬件加速问题
  2. android studio中.9.png图片处理
  3. 给动态生成的View添加水波纹效果
  4. android 自定义PopupMenu详解
  5. Netty 长连接服务
  6. android sd卡数据库读取
  7. Android 开发之官方文档ActionBar学习记
  8. 谷歌发布基于机器学习的Android(安卓)APP
  9. [Android]RIL的启动流程
  10. 64位 Ubuntu android studio 编译android