Android Studio实现进度条效果
作者:Moyoshikine 发布时间:2021-10-12 05:37:17
标签:Android,Studio,进度条
本文实例为大家分享了Android Studio实现进度条效果的具体代码,供大家参考,具体内容如下
实验作业 要求一个进度条,进度随机
效果图
xml代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ProgressBarActivity">
<ProgressBar
android:id="@+id/pb_determinate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Horizontal"
android:backgroundTint="@color/purple_200"
android:progress="25"
android:max="100"
android:layout_centerVertical="true"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ProgressBar"
android:textSize="28sp"
android:gravity="center"
android:layout_below="@+id/pb_determinate"
/>
</RelativeLayout>
java代码
package com.example.a18101352;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private int maxProgress;
private int currentProgress = 0;
private Handler mHandler = new Handler(){
/**
* Subclasses must implement this to receive messages.
*
* @param msg
*/
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
progressBar.setProgress(currentProgress);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress_bar);
progressBar = findViewById(R.id.pb_determinate);
maxProgress = progressBar.getMax();
}
@Override
protected void onStart(){
super.onStart();
new Thread() {
private Random random;
@Override
public void run(){
while(true){
try {
for(int i = 0; i < maxProgress; ++i){
//间隔一秒
Thread.sleep(1000);
random = new Random();
// currentProgress += 10;
// if(currentProgress > maxProgress){
// break;
// }
//获取一个随机数给到currentProgress然后显示出来
currentProgress = random.nextInt(100);
mHandler.sendEmptyMessage(0);
}
}
catch (InterruptedException e){
e.printStackTrace();
}
}
}
}.start();
}
}
线程里的for循环可以去掉,循环是测试定时加长进度条设计的。
来源:https://blog.csdn.net/qq_45274476/article/details/116231083


猜你喜欢
- 本文以实例形式分析了C#中Predicate<T>与Func<T, bool>泛型委托的用法,分享给大家供大家参考之
- 前言请看下面几个问题Spring为什么不推荐使用@Autowired 注解?为什么推荐使用@Resource 代替&nb
- 哈希 Hash 算法介绍哈希算法也叫散列算法, 不过英文单词都是 Hash, 简单一句话概括, 就是可以把任意长度的输入信息通过算法变换成固
- 一、前言最近在加强 ITAEM 团队的一个 app 项目——学生教师学习交流平台人员组成:安卓 + 前端 + 后台后台 DAO 层借鉴了华工
- 本文实例为大家分享了Java实现小型图书馆管理系统的具体代码,供大家参考,具体内容如下以下为小型图书馆管理系统模式图:模式总体概述:其中IB
- 需求:Android调用webView加载网页的时候,拦截某一个链接不执行此链接,执行指定跳转到其他activity页面。webview的s
- 一、HashMap初始化方法HashMap() 不带参数,默认初始化大小为16,加载因子为0.75;HashMap(int initialC
- 本文为大家分享了android倒计时控件,供大家参考,具体代码如下/* * Copyright (C) 2012 The * Project
- 公司运维问我怎么在windows上安装模拟器,我你说你安装模拟器干什么?他说,我安装模拟器查看app的包名这些信息做统计。我顿时想,有必要这
- PC端与Android手机端使用adb forword通信服务器端代码如下:import java.io.IOException; impo
- 很多时候我们弄一个界面,不想要默认的边框,或者不想要右上角的那个最大化按钮,比如qq面板上面就没有最大化按钮。但是我查了很多资料都说不能直接
- 1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android
- 我们经常在项目开放中需要进行很多配置, 那么这些配置基本上都是动态的, 如果我直接写在代码中, 修改起来很麻烦, 如果该配置在多处进行引用啦
- 前言代码库:https://gitee.com/leo825/springboot-learning-parents.git之前写过《Spr
- 前言今天给大家带来一个新的控件–轮播图,网上已经有很多这类的博客来讲解如何实现的,那么我的这个有哪些特点呢?或是说有哪些不同呢?满足了轮播图
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:package wxapi.WxHelper; import java.io.Buffe
- 以下代码实现了android的免提开启和关闭功能需要添加的权限<uses-permission android:name="
- 在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"、“KeyUp”、"Key
- 1、Service层:业务层–>控制业务业务模块的逻辑功能设计,和DAO层一样都是先设计接口,再创建要实现的类,然
- // 举个例子:一个网站有用户系统、商家系统、网站后台3个系统//可以分3个userType, user ,shop , system//网