开发台组件转换——环形进度条

uniapp圆环进度条组件 uniapp圆环进度条 阅读详情

准备工作

  1. 同前章 :滑动选择器
  2. 在widget目录下增加CircularSeekBar.java文件
  3. 在res/values下,替换attrs.xml和style.xml文件

一、添加组件及基本属性配置

操作示例

开发台新建环形进度条,

此时开发台配置参数如下:

					{
                        "areaState": false,
                        "uuid": "WgjR5zwRp",
                        "isLock": false,
                        "style": {
                            "height": 150,
                            "strokeWidth": 10,
                            "width": 150,
                            "top": 0,
                            "left": 0,
                            "backgroundColor": "#EAEFF4",
                            "rotate": 0,
                            "pivotColor": "#20a0ff"
                        },
                        "control": {
                            "drawable": false,
                            "max_value": "100",
                            "min_value": "0",
                            "binding_data": "",
                            "percentage": 10,
                            "binding_max": "Diy"
                        },
                        "aspectRatio": true,
                        "events": {},
                        "component": "brick-circle",
                        "name": "",
                        "iconName": "wk-icon-widget-circle",
                        "title": "环形进度条",
                        "ID": 0
                    }

转换规则

xml文件:

需要在该对应页面的xml布局文件下增加该组件,代码如下:

    <com.kaida.myapplication.widget.myProgressSeekBar.CircularSeekBar
        android:id="@+id/widget_csb_wgjr5zwrp"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        app:circle_stroke_width="15dp"
        app:progress="10"
        app:circle_progress_color="#20a0ff"
        app:circle_color="#EAEFF4"
        />

其中 id 根据配置文件中该滑动选择器组件的 uuid 命名

kt文件:

在该页面的fragment.kt中,onViewCreated方法内,with(binding){ }代码段内,增加如下代码:

            //环形进度条基本属性配置
            widgetCsbWgjr5zwrp.let {
                it.maxValue = 100    //自定义最大值  Diy
                //it.maxValue = vm.setTimeLiveData.value?:100     //绑定最大值 为 设定时间SetTime
                it.minValue = 0
                it.isTouchEnabled = false   //是否可拖动
//                it.isShowPointer = false    //是否显示拖动点
            }

转换规则下图所示,结合注释文字:
在这里插入图片描述

二、功能属性配置——用户可拖动为否

操作示例

如下,配置用户可拖动为否,绑定进度值为“当前温度”(WorkTemp)或“已工作时间”(WorkTime)时

在这里插入图片描述

此时配置属性如下:

                         "control": {
                            "drawable": false,
                            "max_value": "220",
                            "min_value": "0",
                            "binding_data": "WorkTemp",
                            "percentage": 10,
                            "binding_max": "Diy"
                        },

转换规则

xml文件:

同上不变

kt文件:

在该页面的fragment.kt中,onViewCreated方法内,with(binding){ }代码段内,增加如下代码:

            //监听数据变化,更新环形进度条
            vm.workTempLiveData.observe(this@MainFragment.viewLifecycleOwner){
                Log.d(TAG, "observed workTempLiveData changed to $it")
                widgetCsbWgjr5zwrp.progress = it + widgetCsbWgjr5zwrp.minValue  //实际值转进度值
            }

转换规则下图所示:
在这里插入图片描述

三、功能属性配置——用户可拖动为是

xml文件:

同上不变

kt文件:

在该页面的fragment.kt中,onViewCreated方法内,with(binding){ }代码段内,增加如下代码:

            //环形进度条进度变化监听
            widgetCsbWgjr5zwrp.run {
                setOnSeekBarChangeListener(
                        object : CircularSeekBar.OnCircularSeekBarChangeListener{
                            override fun onProgressChanged(
                                circularSeekBar: CircularSeekBar?,
                                progress: Int,
                                fromUser: Boolean
                            ) {
                                Log.d(TAG, "onProgressChanged, progress= $progress , " +
                                        "value= ${progress+(circularSeekBar?.minValue?:0)} , " +
                                        "fromUser= $fromUser")
                                if (fromUser) {
                                    vm.setTime(progress+(circularSeekBar?.minValue?:0))    //设定工作时间,进度值转实际值
                                }
                            }

                            override fun onStopTrackingTouch(seekBar: CircularSeekBar?) {}

                            override fun onStartTrackingTouch(seekBar: CircularSeekBar?) {}

                        }
                    )
            }

转换规则下图所示:
在这里插入图片描述

四、绑定最大值

操作示例

当(binding_max)不为 Diy时,如下是设置时间(SetTime),则不管max_value的值:

                        "control": {
                            "drawable": false,
                            "max_value": "100",
                            "min_value": "0",
                            "binding_data": "WorkTemp",
                            "percentage": 10,
                            "binding_max": "SetTime"
                        },

转换规则

kt文件:

            //环形进度条基本属性配置
            widgetCsbWgjr5zwrp.let {
//                it.maxValue = 100    //自定义最大值  Diy
                it.maxValue = vm.setTimeLiveData.value?:100     //绑定最大值 为 设定时间SetTime
                it.minValue = 0
                it.progress = 10
                it.isTouchEnabled = true   //是否可拖动
//                it.isShowPointer = false    //是否显示拖动点
            }

在这里插入图片描述

鸿蒙5.0版开发:ArkTS组件-Progress 进度条组件,用于显示内容加载或操作处理等进度。 阅读详情

相关推荐

Unity环形进度条组件CircularSlider:从原理到实战应用

在UI开发中,进度条是数值可视化的基础组件,用于直观展示加载进度、血量、技能冷却等状态。其核心原理是将数值映射为图形填充区域,传统直线Slider基于笛卡尔坐标系实现一维填充。然而,在游戏和数据可视化等场景中,环形、弧形等非线性进度条能提供更丰富的视觉表现和空间利用率,这需要将坐标系转换为极坐标系并进行网格顶点动态生成。CircularSlider这类开源组件封装了复杂的几何计算与交互逻辑,通过暴露类似原生Slider的简洁接口,大幅提升了开发效率与UI表现力。它支持自定义弧度、环宽、颜色渐变及圆角端点,并

aoe41606的博客 440

环形渐变进度条组件

自己封装的组件,

yjxkq99的博客 869

鸿蒙5.0版开发:ArkTS基础组件(进展)

进度条组件,用于显示内容加载或操作处理等进度。

m0_69424697的博客 1277

[Uni-app] 微信小程序的圆环进度条

【代码】[Uni-app] 微信小程序的圆环进度条。

C201008的专栏 3500

iOS 实现一个颜色渐变的弧形进度条

在Github上看到一些进度条的功能,都是通过Core Graph来实现。无所谓正确与否,但是开发效率明显就差很多了,而且运行效率还是值得考究的。其实使用苹果提供的Core Animation能够非常简单和方便的实现环形进度条效果,而且还可以高效的保证动画效果,无论是前进还是后退(语言水平比较有限,就多用代码说话)。 1、先来一个结果 80%的状态: 99%的

王颜华的博客 907

打造iOS环形进度条自定义控件的实战指南

自定义控件是扩展用户界面元素和行为的一种方式,它允许开发者创建独特的界面组件以满足特定的应用需求。自定义控件不仅限于视觉展示,还可能包含复杂的逻辑处理和交互行为。要创建一个自定义控件,开发者通常需要继承现有的控件类,并重写其方法来扩展或修改其功能。这涉及到一系列的开发流程,包括设计、实现、测试和优化。自定义控件的优势在于能够提高开发效率,增强应用的可维护性和扩展性。它们可以被复用在不同的项目中,提供一致的用户体验,并且易于集成和升级。是一个抽象类,它定义了所有动画行为的基础属性。

weixin_36303807的博客 1146

环形进度条组件

【代码】环形进度条组件。

weixin_42722844的博客 221

精美倒计时环形进度条设计与实现

高端应用可能允许用户设置偏好时区(如“GMT+8”或“America/New_York”)。此时可结合IntlAPI:// 北京时间// 洛杉矶时间此类功能适合配置中心类应用,增强用户体验。利用 Web Components 创建可复用的标签:super();在现代前端开发中,组件化是提升代码复用性、可维护性和团队协作效率的核心手段。

weixin_42575109的博客 767

vue3圆环进度条组件

主要用于展示数值,和根据百分比展示圆环。

weixin_62639453的博客 1376

适用于Android的自定义圆形SeekBar(圆形,半圆形和椭圆形)-Android开发

CircularSeekBar丰富的功能,适用于Android的圆形SeekBar(圆形,半圆形和椭圆形)。 该库基于Matt Joseph(devadvance)的CircularSeekBar。 但是原始作者似乎已经停止维护(l的CircularSeekBar丰富功能Circular SeekBar(圆,半圆和椭圆))。该库基于Matt Joseph的CircularSeekBar(devadvance)。但是原始作者似乎已经停止了。维护(最后一次提交是在2016年),所以我决定自己解决这个问题。我将其构建在Android Studio(Gradle)上,然后修复并向库中添加了更多功能。我添加的功能支持浮动进度,而不是仅整数。重构属性的名称,以避免con

近20款样式的HTML5环形进度条插件

近20款样式的HTML5环形进度条插件 近20款样式的HTML5环形进度条插件

用CSS+SVG做一个优雅的环形进度条

本文为我们介绍了用CSS+SVG做一个优雅的环形进度条的核心原理。利用两个重叠的圆环形,通过对上层圆环弧长的控制来表示进度,下层圆环则作为辅助,呈现环形进度条剩余的部分。

OpenTiny的博客 2743

CircularSeekBar, Android的定制循环 SeekBar ( 圆,半圆形和椭圆).zip

CircularSeekBar, Android的定制循环 SeekBar ( 圆,半圆形和椭圆) CircularSeekBarAndroid的定制循环 SeekBar ( 圆,半圆形和椭圆) 。这个库是基于 CircularSeekBar的。matt的原因是创建repositive而不是 fork的原因是项目结构不同。在 A

【游戏客户端】如何实现环形进度条

今天主要是分享如何在cocos制作一个环形的进度条

Lampard的博客 2637

vue环形进度条组件实例应用

在本文中我们给大家分享了关于vue环形进度条组件的使用方法以及实例代码,需要的朋友们跟着测试下吧。

MTK-Display技术解析:从MDP到DDP的架构演进

本文深入解析了联发科(MTK)显示技术从MDP到DDP的架构演进。MDP作为多媒体数据预处理中心,负责格式转换与缩放;而DDP则整合了OVL、COLOR、AAL等模块,并引入CMDQ与场景化模式,实现了从分散处理到统一智能调度的飞跃,旨在提升画质、流畅度并降低功耗。

weixin_29218509的博客 253

vue 环形进度条(动态的效果)

<div class="percentloop"> <div class="circle-left"> <div ref="leftcontent"></div> </div> <div class="circle-right"> <div ref="rightcontent"></div> </div> <div class="n

qq_32184753的博客 2306

关于Win11安装Ubuntu子系统报错:WslRegisterDistribution failed with error 解决办法

Win11安装Ubuntu子系统报错:WslRegisterDistribution failed with error

qq_51908382的博客 3万+

【HarmonyOS 5】鸿蒙中进度条的使用详解

HarmonyOS的ArkUI框架为开发者提供了多种类型的进度条,每种类型都有其独特的样式,以满足不同的设计需求。:这是最常见的进度条样式,以直线的形式展示进度。从API version 9开始,当组件高度大于宽度时,它会自适应垂直显示;当高度和宽度相等时,保持水平显示。:这种进度条呈环形,通过环形圆环的逐渐填充来显示进度,默认前景色为蓝色,默认strokeWidth进度条宽度为2.0vp。:它显示类似时钟刻度形式的进度展示效果。

路漫漫亦无涯 1693

电源完整性仿真流程梳理

可根据仿真流程导图,一步一步的去设置完成仿真。仿真的关键,在于对电路回路的理解以及所放置的电压源与电流的合理性,对于去耦电容的选择,则需要根据谐振频率计算,从而选取有效滤波的容值。

csy17729158342的博客 3441

Windows 11 下 WSL 离线安装 Ubuntu 22.04 保姆级教程(国内镜像加速版)

本文提供了一份针对中国地区用户的Windows 11下WSL离线安装Ubuntu 22.04的详细教程。通过使用国内镜像源加速下载安装包,并配合PowerShell命令完成部署,有效解决了官方商店下载缓慢的问题。教程涵盖环境准备、离线包获取、安装初始化及安装后的关键优化配置,帮助用户快速搭建高效的Linux开发环境。

weixin_28452161的博客 1377

【鸿蒙next开发】ArkUI框架:ArkTS组件-Progress

本文详细介绍了鸿蒙HarmonyOS的Progress进度条组件,包括其功能特点、API版本支持、参数配置及样式定制方法。

m0_73088370的博客 713

保姆级教程:用海思PQTool搞定ISP图像调试,从参数读取到固件烧录全流程

本文提供海思PQTool的ISP图像调试全流程指南,从参数读取、实时调试到固件烧录,涵盖环境配置、核心功能解析、参数固化及生产部署。通过实战案例和避坑指南,帮助开发者高效提升图像质量,适用于海思开发板的ISP调试与优化。

weixin_30872337的博客 279
上一篇: 开发台组件转换——滑动选择器
下一篇: 开发台组件功能实现扩展——按钮
LiePy
博客等级 码龄7年 1927粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值