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

实现类似 “更新中” 的水平进度条按钮效果

如上图所示

activity_test3.xml
<RelativeLayout 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"android:background="#000000"tools:context=".MainActivity"><ProgressBarandroid:id="@+id/progress_bar"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="640dp"android:layout_height="108dp"android:layout_centerInParent="true"android:indeterminate="false"android:max="100"android:progress="0"android:progressDrawable="@drawable/progress_bar_style" /><TextViewandroid:id="@+id/btn_update"android:layout_width="640dp"android:layout_height="108dp"android:layout_centerInParent="true"android:text="更新中"android:textColor="#ffffffff"android:gravity="center"android:textSize="40sp" /></RelativeLayout>
TestActivity3.java
package com.example.myapplicationimport android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.widget.ProgressBar
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivityclass TestActivity3 : AppCompatActivity() {private lateinit var btnUpdate: TextViewprivate lateinit var progressBar: ProgressBarprivate val handler = Handler(Looper.getMainLooper())private var progress = 0override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_test3)btnUpdate = findViewById(R.id.btn_update)progressBar = findViewById(R.id.progress_bar)btnUpdate.setOnClickListener {Thread {while (progress < 100) {progress += 1try {Thread.sleep(100)} catch (e: InterruptedException) {e.printStackTrace()}handler.post {progressBar.progress = progress}}}.start()}}
}
progress_bar_style.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@android:id/background"><shape><corners android:radius="54dp" /><solid android:color="#1AFFFFFF" /></shape></item><item android:id="@android:id/progress"><clip><shape><corners android:radius="54dp" /><solid android:color="#FF267AFF" /></shape></clip></item>
</layer-list>

相关文章:

  • 高级java每日一道面试题-2025年4月10日-微服务篇[Nacos篇]-Nacos的服务健康检查机制是如何工作的?
  • 下载maven低版本(官网)
  • 网站301搬家后谷歌一直不收录新页面怎么办?
  • maven如何解决jar包依赖冲突
  • Maven 多仓库和多镜像配置
  • 红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南
  • 408 计算机网络 知识点记忆(9)
  • 【今日三题】添加字符(暴力枚举) / 数组变换(位运算) / 装箱问题(01背包)
  • 阿里云短信服务与ASP.NET对接实例
  • 21、c#中“?”的用途
  • TDengine 语言连接器(R语言)
  • 【QT】常用控件 【多元素类 | 容器类 | 布局类】
  • 【n8n docker 部署的代理问题】解决n8n部署无法访问openai等外国大模型厂商的api
  • 入门-C编程基础部分:5、变量
  • MyBatis-Plus 中BaseMapper接口是如何加速微服务内部开发的?
  • 在ubuntu20.04+系统部署VUE及Django项目的过程记录——以腾讯云为例
  • HADOOP——序列化
  • 高并发多级缓存架构实现思路
  • 施磊老师基于muduo网络库的集群聊天服务器(一)
  • 微软承认Win11出现极端错误,只能强制关机或重装系统
  • 制作html网站/google广告投放
  • 网站建立软件/手机管家一键优化
  • 天迈装饰网站建设项目/上海百度seo公司
  • 王爷好大受不了txt下载/站内seo的技巧
  • 广州外贸企业网站建设/百度搜索链接
  • 广州企业网站设计方案/做seo排名好的公司