Android:ProgressBar 进度条
来源:互联网 发布:free mobile java韩国 编辑:程序博客网 时间:2024/03/28 20:51
进度条的运用还算比较多,比如说我们下载APP时,都会有进度条。不多说,直接上代码。
MainActivity.java
package com.example.progressbartest;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.view.View;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { private Button startButton; private Button stopButton; private TextView result; private ProgressBar MyProgressBar; private final static int Value=5; private int i=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.progress); setTitle("ProgressBar"); startButton=(Button)findViewById(R.id.startButton); stopButton=(Button)findViewById(R.id.stopButton); result=(TextView)findViewById(R.id.result); MyProgressBar=(ProgressBar)findViewById(R.id.firstProgressBar); MyProgressBar.setVisibility(0);//刚开始设置进度条可见 MyProgressBar.setVisibility(View.GONE);//不可见 MyProgressBar.setVisibility(View.VISIBLE);//可见 MyProgressBar.setVisibility(View.INVISIBLE);//不可见 MyProgressBar.setVisibility(View.VISIBLE);//可见 startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(i>=MyProgressBar.getMax()){ i=0; } result.setText(((double)i/MyProgressBar.getMax()*100)+"%"); handler.post(progressBarThread); } }); stopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { handler.removeCallbacks(progressBarThread); } }); } //创建Handler对象 Handler handler=new Handler(); //创建线程对象 MyRunnable progressBarThread=new MyRunnable(); class MyRunnable implements Runnable{ @Override public void run() { i+=Value; //每隔1秒调用一次progressBarThread线程 handler.postDelayed(progressBarThread, 1000); MyProgressBar.setProgress(i); MyProgressBar.setSecondaryProgress(i+Value); result.setText(((double)i/MyProgressBar.getMax()*100)+"%"); if(i>=MyProgressBar.getMax()){ handler.removeCallbacks(progressBarThread); test(); } } } public void test(){ Toast.makeText(this, "progressBar is max", 1).show(); }}
通过创建Handler对象管理线程,完成功能。
上面重复的设置setVisibility,只是为了让自己搞清楚setVisibility的属性值情况。
通过查看源码:
public void setVisibility(int v) { if (getVisibility() != v) { super.setVisibility(v); if (mIndeterminate) { // let's be nice with the UI thread if (v == GONE || v == INVISIBLE) { stopAnimation(); } else { startAnimation(); } } } }
0 0
- Android ProgressBar 进度条
- Android ProgressBar 进度条
- android 进度条(ProgressBar)
- android 进度条(ProgressBar) [
- android------进度条ProgressBar
- android 控件 进度条(ProgressBar)
- Android中ProgressBar进度条
- android学习----ProgressBar 进度条
- android ProgressBar 进度条
- Android:ProgressBar 进度条
- android 之进度条--------progressbar
- android 进度条ProgressBar
- Android progressBar进度条
- android:progressbar实现进度条
- Android--进度条--ProgressBar--SeekBar
- Android之进度条ProgressBar
- android进度条ProgressBar例子
- Android练习-----进度条(ProgressBar)
- Maven tools.jar not found
- ext校验
- Unity3D避免玩家作弊
- 一个人,一个网站,5.75亿美元卖掉
- 【C++语法】关于operator[]重载的注意点
- Android:ProgressBar 进度条
- c# 调用oracle 存储过程、方法简易例子
- java多线程系列——(1)写在前面
- 简单了解ADO.NET、ADO、OLE DB、ODBC
- 论压缩图片核心技术,几种常见使用方式
- wpf 如何定义热键
- 1671 Walking Ant【bfs】
- 序列化和反序列化二叉树
- 编程思想┊从实例谈面向对象编程(OOP)、工厂模式和重构