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

Android 移动开发:ProgressBar (水平进度条)

案例目标

这是一个 Android 移动应用开发中使用 ProgressBar(水平进度条) 的简单案例,适合初学者学习。通过点击按钮模拟下载过程,进度条每次前进 10%。本文完整提供 Java 和 XML 源码,适合复制直接使用,并标注了对应的文件名。


一、程序运行效果

打开应用后,页面显示一个水平进度条和一个按钮。点击按钮后,进度条会每次递增 10%,模拟一个“下载”过程。


二、布局文件代码

文件名: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"><ProgressBarandroid:id="@+id/pb_1"style="?android:attr/progressBarStyleHorizontal"android:max="100"android:layout_width="300dp"android:layout_height="wrap_content"android:layout_marginTop="20dp"/><Buttonandroid:id="@+id/btn_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="模拟下载"android:layout_marginTop="10dp"/>
</LinearLayout>

三、Java 逻辑代码

文件名: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) {int progress = pb_1.getProgress();progress += 10;if (progress <= 100) {pb_1.setProgress(progress);}}});}
}

四、小结

这个案例帮助大家学习了如何使用 ProgressBar 显示水平进度,并通过按钮控制其进度。适合用于文件下载、上传等进度展示场景。

 

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

相关文章:

  • 【LeetCode Hot100】回溯篇
  • cua: 为 AI 智能体提供高性能虚拟环境
  • GTA5(传承/增强) 13980+真车 超跑 大型载具MOD整合包+最新GTA6大型地图MOD 5月最新更新
  • PyTorch 2.0编译器技术深度解析:如何自动生成高性能CUDA代码
  • 【Bootstrap V4系列】学习入门教程之 页面内容排版
  • 图像加密算法概述
  • Elsevier latex报错Paragraph ended before \@citex was complete.<to be read again>
  • Vue3 + OpenLayers 企业级应用进阶
  • Linux 第六讲 --- 工具篇(一)yum/apt与vim
  • 哈希表笔记(四)Redis对比Java总结
  • YOLOv8模型训练过程
  • Python与MySQL高效集成指南:从基础到高级实践
  • Hibernate与MybatisPlus的混用问题(Invalid bound statement (not found))
  • (C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • 恒流源电路
  • RAG工程-基于LangChain 实现 Advanced RAG(预检索-查询优化)(下)
  • 前端HTML基础知识
  • 【大模型面试每日一题】Day 5:GQA vs MHA效率对比
  • CV中常用Backbone-2:ConvNeXt模型详解
  • 微软推出数款Phi 4“开放式”人工智能模型
  • VB.net序列化和反序列化的使用方法和实用场景
  • NUS:多模态多视角理解评估
  • 攻防世界 - Misc - Level 6 | Wireshark
  • jupyterlab建议安装的两个插件
  • LeetCode:DP-回文串问题
  • 如何测试登录模块?全面测试思路解析
  • Python爬虫(14)Python爬虫数据存储新范式:云原生NoSQL服务实战与运维成本革命
  • Socket通信
  • Beetle-RP2350 扩展板设计
  • 力扣——23合并升序链表