android 实现进度条的画面加载
android进度条的实现:
进度条英文名 : Progress_Bar
流程 :
创建progressbar进度条,将进度条拖进界面
切换到MainActivity.java文件
绑定控件
控件类型 接收变量 = findViewById(R.id.(控件的id));bar = (ProgressBar) findViewById(R.id.progressBar1); //寻找进度条的控件
text = (TextView) findViewById(R.id.textView1); //寻找字窗的控件
开启子线程, 在最后面需要添加.start()方法进行启动线程
new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stub
}).start();
由于线程执行的太快 我们应该给线程里面加一个睡眠的方法让它缓慢执行
//让程序每100毫秒执行一次 由于这句话很容易出现异常
//所以我们需要使用try来捕获异常防止程序崩塌
try{Thread.sleep(100);
}catch{e.printStackTrace();
}
在线程中设置progressbar的值
bar.setprogressbar(100); //设置进度条的值为100;
由于对耗时操作进行开启子线程 不能在子线程执行耗时操作 子线程不能对UI操作所以要让ui在线程之上执行操作需要实现一个runOnUIThread()方法即可
new runOnUIThread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stub
});
进度条每更新一次 TextView里面的文字都要做出相对应的变化,所以得先在外面定义一个值然后让里面的线程进行持续执行:
int num = 0;
while(true){num++ //相当于num = num+1try{Thread.sleep(1000); // 设置线程睡眠的时间}catch{e.printStacKTrace();}// 让Ui在线程之上运行runOnUiThread(new Runnable(){@Overridepublic void run() {bar.setprogressbar(100); //设置进度条的值 });
}
没一次加载程序页面就会更新相对应的值 需要使用if语句判断 但是多个值判断switch语句效率更高一点:
switch(值){case 判断值:执行内容break;case 判断值:执行内容break;case 判断值:执行内容break;case 判断值:执行内容break;case 判断值:执行内容break;
进度条整体代码如下:
package com.example.progress_bar;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;public class MainActivity extends Activity {private ProgressBar bar;private TextView text;int num = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//对控件进行绑定Progressbar bar = findViewById(R.id.progressbar1); //获取进度条控件TextView text = findViewById(R.id.textView1); // 获取字窗控件new Thread(new Runnable(){ //需要做耗时操作 开启子线程@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){ // 对线程进行执行循环直到num到100num++; // 相当于num = num + 1;try{ // 防止线程睡眠出错使程序崩溃Thread.sleep(1000); }catch{e.printStackTrace();}}// Ui更新不能在线程里面出现, //所以要是实现runOnUiThread方法, //让它在子线程之上执行操作;runOnUiThread(new Runnable(){bar.setprogressbar(num); //设置进度条的值;// 判断num到了多少然后把值显示在TextView窗口上switch(num){case 20:text.setText(String.valueOf(num));break;case 40:text.setText(String.valueOf(num));break;case 60:text.setText(String.valueOf(num));break;case 80:text.setText(String.valueOf(num));break;case 100:text.setText(String.valueOf(num));break; }});}}).start(); //让线程启动
}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
效果图:
android 实现进度条的画面加载相关推荐
- Android 下载进度条, 自定义加载进度条,loading动画
1.自定义loadingline动画 /*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/6 10*/public class Lo ...
- 自定义扇形进度条、异步加载网络图片、Activity疯狂旋转动画
效果预览: 正文 1.自定义扇形进度条. 思考: (1)如何绘制扇形. (2)重写onDraw(Canvas canvas) 或 draw(Canvas canvas). (3)是否保留背景设置. ( ...
- cocosCreator 用进度条展示场景加载进度
代码如下: onLoad () {var _this = this;_this.beginGame = cc.find("Canvas/bg/begin");_this.progr ...
- Android缓冲进度条或加载进度条
缓冲进度条或加载进度条,在加载页面或者视频加载过程中,为了做到更好的UI及App功能体验交互,这些缓冲加载的等待效果是必不可少的: 下面来看一下旋转的动画效果: 那么,他们的具体源码在这里:loadi ...
- Android更新圆点代码,Android实现两圆点之间来回移动加载进度
本文实例为大家分享了Android实现两圆点之间来回移动加载进度的具体代码,供大家参考,具体内容如下 一.前言 最近喜欢上自定义控件,喜欢实现一些简约有趣的控件,也好巩固下以前学得知识和不断的学习新知 ...
- Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78357251 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- android中进度条的使用,android的进度条使用
android的进度条 1.实现的效果 2.布局代码 先写一个my_browser.xml文件 存放WebView android:layout_width="fill_parent&quo ...
- android自定义进度条_Android中的自定义进度栏
android自定义进度条 Custom progress bar in android application gives it a personal touch. In this tutorial ...
- Android开源框架集合分享-图像加载
关于网络加载已经写完了,今天来给大家分享一下关于图像加载的知识,在开发中除了请求数据怎么显示之外,剩下的 最大的需求应该就在图像的显示上了,一开始的话都是直接加载,等到写完之后发现内存溢出,然后开始优 ...
- Android的进度条(ProgressBar)、拖动条(SeekBar)
Android的进度条与拖动条 一.ProgressBar(进度条) 进度条,ProgressBar,分为环形和水平条行, 首先看下效果图,Progress进度加载. 进度条XML中的属性 ...
最新文章
- php源代码序列号,php如何生成不重复的序列号
- unity3D小小白之雾效
- 3 镜像仓库Harbor安装
- The method setOnClickListener(View.OnClickListener) in the type View is not applicable
- .NET体系中的源程序安全问题
- java序列化流_java 序列化流与反序列化流
- c比java运行快的原因_C/C++比JAVA快的原因
- C++ #define参数问题
- 关于OpenCV的基本数据类型
- 软件工程革命 三部曲 —— 前传
- Xcode C++ and Objective-C refactoring
- Python基础教程,Python入门教程(非常详细)
- 【动态规划 记忆化搜索】JZOJ_6287 扭动的树
- Springboot使用Curator 集成zk
- Linux学习笔记精华总结(选自鸟哥的Linux私房菜)
- oracle 虚拟机安装mac os,【Mac OS X 详细安裝教程图解之虚拟机安装】-Oracle论坛-ZOL中关村在线...
- ViewPager的翻页动画
- 解决外网与内网或内网之间的通信,NAT穿透
- PAP认证、CHAP认证
- Acala TC4 糖果节历程总结