当前位置: 首页 > java >正文

Android 移动开发:ProgressBar(转圈进度条)

目录

Android 移动开发:ProgressBar(转圈进度条)控件实战介绍

📂 文件说明

🧾 activity_main.xml(布局文件,XML)

🧾 MainActivity.java(逻辑代码,Java)

💡 程序运行效果说明


本文将通过一个简单案例,带你学习 Android 中如何使用 ProgressBar(转圈加载条)。这个控件常用于数据加载时的提示,比如网络请求、处理过程等待等场景。

本案例功能:点击按钮显示或隐藏圆形加载进度条。内容简单,适合初学者练手学习。


📂 文件说明

  • activity_main.xml(布局文件,代码类型:XML

  • MainActivity.java(逻辑代码,代码类型:Java


🧾 activity_main.xml(布局文件,XML)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"android:padding="16dp"><ProgressBarandroid:id="@+id/pb_1"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/btn_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="点击显示隐藏进度条"android:layout_marginTop="10dp"/>
</LinearLayout>

🧾 MainActivity.java(逻辑代码,Java)

package com.example.demo6;import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;public class MainActivity extends AppCompatActivity {private ProgressBar pb_1;private Button btn_1;@SuppressLint("MissingInflatedId")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pb_1 = findViewById(R.id.pb_1);btn_1 = findViewById(R.id.btn_1);btn_1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 显示或隐藏 ProgressBarif(pb_1.getVisibility() == View.GONE){pb_1.setVisibility(View.VISIBLE);} else {pb_1.setVisibility(View.GONE);}}});}
}

💡 程序运行效果说明

打开应用后,你将看到一个按钮和一个正在转圈的加载条。点击按钮可以切换加载条的显示或隐藏状态,实现控制进度条是否可见的交互功能。

http://www.xdnf.cn/news/3161.html

相关文章:

  • 基于go的简单管理系统(增删改查)
  • Linux基础 -- Generic Netlink 框架详解与开发实践
  • UI设计之photoshop学习笔记
  • ⛺️ Sui Basecamp 2025 最新日程
  • C# 类的基本概念(从类的内部访问成员和从类的外部访问成员)
  • AXI总线设计高带宽or低带宽?你需要做个选择
  • 大规模克希霍夫积分法叠前深度偏移中,并行化和旅行时表处理
  • 11.模方ModelFun工具-指定置平
  • 【Docker】Docker拉取部分常用中间件
  • 音视频项目在微服务领域的趋势场景题深度解析
  • 为Mac用户定制的云服务器Vultr 保姆级教程
  • 运维打铁: 存储方案全解析
  • 《可信数据空间 技术架构》技术文件正式发布
  • 出现Invalid bound statement (not found)问题的原因可能有哪些
  • 分布式数字身份:迈向Web3.0世界的通行证 | 北京行活动预告
  • IoTDB集群部署中的网络、存储与负载配置优化
  • 研发效率破局之道阅读总结(4)个人效率
  • C#学习笔记 项目引用添加异常
  • C++继承(上)
  • 一、OrcaSlicer源码编译
  • VOIP的信令技术有哪些,区别是什么?
  • 【教学类-102-21】蝴蝶三色图作品3——异型书蝴蝶“满格变形图”一页2图、一页4图
  • ubuntu 部署moodle
  • Java Set<String>:如何高效判断是否包含指定字符串?
  • 私有知识库 Coco AI 实战(六):打造 ES Mapping 小助手
  • 你的项目有‘哇‘点吗?
  • LabelVision - yolo可视化标注工具
  • flutter 专题 五十八 关于Flutter提示Your Xcode project requires migration的错误
  • 神经网络用于地震数据时空均匀插值的方法与开源资料
  • Vue:el-table-tree懒加载数据