android学习----ProgressBar 进度条
来源:互联网 发布:java public interface 编辑:程序博客网 时间:2024/04/20 19:44
进度条是一种非常实用的组件,下面我们来学习一下如何实用进度条
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
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <ProgressBar android:id="@+id/progress1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="20" android:max="100" android:layout_margin="20dp" style="@android:style/Widget.ProgressBar.Horizontal"/> <TextView android:id="@+id/proText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="100dp" android:text="当前进度:20%"/></LinearLayout>
(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;}}
运行后,效果如下:
0 0
- android学习----ProgressBar 进度条
- 【Android学习】进度条ProgressBar
- Android学习 ProgressBar(进度条)
- Android学习-ProgressBar进度条
- Android学习笔记之progressBar(进度条)
- Android学习篇章5-ProgressBar进度条
- 【android控件学习笔记】ProgressBar进度条
- Android学习实践:11.进度条ProgressBar
- Android学习--ProgressBar进度条的使用
- Android学习之自定义进度条ProgressBar
- ProgressBar 进度条 -- Android学习之路
- Android学习 20 -> 进度条之加载进度条ProgressBar
- Android ProgressBar 进度条
- Android ProgressBar 进度条
- android 进度条(ProgressBar)
- android 进度条(ProgressBar) [
- android------进度条ProgressBar
- android 控件 进度条(ProgressBar)
- ZTE/中兴V880+(Blade II) root教程_方法
- Samsung/三星Galaxy Mega 5.8(I9158/移动版) root教程_方法
- innos a35 root教程_方法
- 使用 jQuery Mobile 与 HTML5 开发 Web App —— 10 jQuery Mobile 默认配置与事件基础
- Gionee/金立C610 root教程_方法
- android学习----ProgressBar 进度条
- Motorola/摩托罗拉Cliq2 root教程_方法
- Django学习笔记(五)Django传参
- 使用 jQuery Mobile 与 HTML5 开发 Web App —— 11 jQuery Mobile 事件详解
- Alcatel/阿尔卡特OT-995 root教程_方法
- 欧奇 A12 root教程_方法
- 泛泰Vega IM-A650S root教程_方法
- Samsung/三星GALAXY NOTE(I9220/至尊版) root教程_方法
- 使用 jQuery Mobile 与 HTML5 开发 Web App —— 12 jQuery Mobile 页面事件与 deferred