android学习----ProgressBar 进度条
16lz
2022-06-18
进度条是一种非常实用的组件,下面我们来学习一下如何实用进度条
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;}}
运行后,效果如下:
更多相关文章
- java后台接收android客户端通过http方式发送的数据
- android 实现自定义隐藏式菜单
- Android(安卓)TextView 给文本中指定片段添加自定义点击事件
- android评分条RatingBar自定义设置
- Android在程序中动态生成控件,动态布局
- android自定义ProgressBar
- 2.4.4 进度条
- Android自定义View之一:初探实例
- Android(安卓)Studio使用AIDL时无法找到自定义的类