安装包UI美化之路-进度条的多种配置方法

news2025/7/4 21:25:58

安装包的进度条,你真正关心过么? 你知道如何配置出美观的进度条么?遇到特殊的进度条需求,你知道怎么实现么?

安装包的美化过程中,有一个细节比较重要,那就是进度条的呈现样式!

呈现得是否自然,是否足够美观,有没有亮点,这些往往都是客户所追求的一个点。

在nsNiuniuSkin+Nsis的安装包美化解决方案中,我们有多种方案来配置进度条的UI呈现,满足不同场景的需求。当然,我们的进度条目前来讲还是相对传统的,还是属于从左到右的一个进度呈现,未来我们将会提供更多形式的进度样,以满足不同客户的要求。

下面我们来看一下有哪些配置方法:

1. 通过Slider控件,结合背景图和前景图来实现

这个属于最标准的duilib的进度条配置方案,背景图将先绘制,铺满整个Slider的区域,而前景图将会后绘制,而前景图只会绘制到进度所到之处,以此来区分显示当前进度。 配置脚本如下:

<Slider name="slrProgress" padding="20,53,20,0" height="24" value="20" min="0" max="100" mouse="false" foreimage="file='images\progress_fore.png' corner='5,5,5,5'" bkimage="file='images\progress_bk.png' corner='5,5,5,5'" />

效果如下:

此处要注意的是,进度条我们可以设计成带圆角的图片,同时在XML脚本中通过corner属性固定两头,中间拉伸;这样就得到了可变长的进度条效果;同时,可以给前景图和背景图设计好渐变色,这样在拉伸的过程中呈现的会更有层次感。

2. 通过Slider控件,去掉图片,完全通过图片来实现进度条

完全通过颜色来控制;在Slider控件中,除了通过图片来呈现进度外,我们还可以通过前景色和背景色来呈现进度;同时我们实现了可渐变的前景色,具体配置如下:

<Slider name="slrProgress" padding="20,53,20,0" height="8" value="1" min="0" max="100" mouse="false" forecolor="0xFF44D7B6" forecolor2="0xFF2979FF" thumbsize="0,0" bkcolor="#FFE3E3E3" />

效果如下:

在有些场景下,我们需要尽可能减少安装包的体积,同时又要保持进度条的优雅,那么这种配置方案将会更加适合。

3. 通过Slider控件,结合thumbimage来实现进度呈现

有了上述两种效果就够了么? 在90%以上的场景应该是够用了,简洁又方便;但如果你还想追求更完美一点的效果,不妨试试下面这个方案。

比如我们将在进度达到的地方,呈现一个小火箭,以此表示安装正在努力的向前冲,应该如何做呢?

配置如下:

<Slider name="slrProgress" padding="20,53,20,0" height="24" value="20" min="0" max="100" mouse="false" thumbimage="file='images\rocket.png'" thumbsize="50,24" foreimage="file='images\progress_fore.png' corner='5,5,5,5'" bkimage="file='images\progress_bk.png' corner='5,5,5,5'" />

效果如下:

这个方案其实是在方案1的基础上,增加了一个thumbimage来呈现当前的进度,效果应该说还是非常不错的!

其实,这里并不一定需要用到thumbimage,直接通过foreimage,结合corner属性也能做到;这里留一个悬念,大家觉得应该如何设计前景图,然后如何配置foreimage吗?想知道的,可以到我们的交流群中咨询讨论哈!

4. 进度条支持gif,让安装动起来

假设我们希望做一个跟水有关的安装包,安装的进度,我想要有一条鱼在游动着,进度到哪里,它就游到哪里,这时候应该怎么办呢?

很明显,上面三种方案都无法实现,在目前我们的nsNiuniuSkin插件中,并不支持这样的进度条,那么是否意味我们不能实现这样的效果了呢?

答案是否定的,nsNiuniuSkin与Nsis的方案的最大特点就是灵活,我们把所有接口提供给了Nsis,可以结合脚本的能力来实现这一功能。 配置方案如下:

  • 在xml中放置一个浮动的GifAnim控件,用于呈现游动的鱼
  • 在安装进度的回调的NSIS脚本中,我们通过计算到的进度,控制GifAnim控件的位置,即可实现相应的效果(上一节中说到的火箭,事实上我们也可以通过脚本来实现)

XML配置如下:

<Slider name="slrProgress" padding="20,53,20,0" height="24" value="20" min="0" max="100" mouse="false" foreimage="file='images\progress_fore.png' corner='5,5,5,5'" bkimage="file='images\progress_bk.png' corner='5,5,5,5'" /> <GifAnim float="true" name="slrProgress_float" bkimage="file='images\walk.gif'" pos = "20,276,47,320" visible="true"/>

NSIS脚本如下(在ExtractCallback函数中增加如下脚本):

# 计算gif位置,计算X坐标,存入$R2-$R3
System::Int64Op $R6 * 500
Pop $R2 
System::Int64Op $R2 / 100
Pop $R2 # left坐标
System::Int64Op $R2 + 20
Pop $R2 # left坐标
System::Int64Op $R2 + 27 
Pop $R3 # right坐标
nsNiuniuSkin::SetControlAttribute $hInstallDlg "slrProgress_float" "pos" "$R2,286,$R3,310"

效果如下:

这样是不是更加有动感了呢!

这里不一定要有前景图和背景图,使用前景色和背景色的方案也是一样的,可以根据需要自行组合!

如果您还有更多的进度条配置方案,或者有更细、要求更高的安装包进度需求,随时联系我们吧!

结语

在安装包安装过程中,精美的UI往往能让客户对所安装产品的印象更加深刻,更能体现出软件服务商在用户体验上的专注与用心! 希望我们的努力,能够让安装包制作再容易一点,再快乐一点!

愿天下没有难做的安装包!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3、网关和BFF

一、网关和BFF的演进 v1 使用nginx负载均衡简单的微服务体系&#xff1b; v2 nginx直接暴露 v2.5无线BFF v3 集群BFF无线网关 v4无线网关、无线BFF根据业务集群化&#xff0c;废弃nginx集群 二、网关和反向代理 网关和反向代理的选择&#xff1a; 关于网关集群问题&#…

【自动化持续集成必备基础】pipeline常用功能

简介 ​pipeline是一套运行在jenkins上的工作流框架&#xff0c;可以实现复杂流程的编排和可视化运行 pipeline支持两种语法&#xff1a;Declarative Pipeline(声明式流水线)和Scripted Pipeline (脚本式流水线) 本文重点介绍主流的声明式流水线 创建流水线项目 在Jenkins中如果…

SpringBoot SpringBoot 原理篇 2 自定义starter 2.4 使用属性配置设置功能参数【1】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇2 自定义starter2.4 使用属性配置设置功能参数【1】2.4.1 直接开干2.4.2 小结…

linux驱动之调试技巧--- 应用程序远程gdb+vscode调试应用程序, 串口kgdboc调试.ko驱动程序

环境: Ubuntu: Ubuntu 22.04.1 开发板: imx6ull linux内核版本: Linux4.9.88 虚拟机: vmware15 交叉编译工具gcc版本: 4.9.4 (Linaro GCC 4.9-2017.01) arm-linux-gdb版本: gdb (Linaro_GDB-2017.01) 7.10.1.20160210 先决条件 开发板 虚拟机 PC 可互通网络 交叉编译环境已经搭…

哈希(Hash)

文章目录一、哈希是什么&#xff1f;二、哈希冲突三、开放定址法1.线性探测2.二次探测四、拉链法/哈希桶五、哈希的应用1.位图1.1 面试题1.2 位图概念1.3 位图的应用2.布隆过滤器2.1概念2.2布隆过滤器的查找2.3布隆过滤器的删除一、哈希是什么&#xff1f; Hash&#xff0c;一般…

语音识别系列︱利用达摩院ModelScope进行语音识别+标点修复(四)

终于有时间更新语音识别系列了&#xff0c;之前的几篇&#xff1a; 语音识别系列︱用python进行音频解析&#xff08;一&#xff09; 语音识别系列︱paddlehub的开源语音识别模型测试&#xff08;二&#xff09; 语音识别系列︱paddlespeech的开源语音识别模型测试&#xff08;…

1. JVM类加载机制

1. JVM类加载机制图解 下面我们来详细分析一下这个图解 1.1 其中loadClass()方法的调用的类加载的过程有如下几步 加载->验证->准备->解析->初始化->使用->卸载 加载&#xff1a;在硬盘上查找并通过IO读入字节码文件&#xff0c;当使用到这类的时候才会加…

[GYCTF2020]Ezsqli

先试一下万能密码 1 or 11# 发现有过滤&#xff0c;fuzz看一下过滤了什么 if&#xff0c;|&#xff0c;|| 没过滤&#xff0c;过滤了information_schema MySQL5.7新特性&#xff1a; 由于performance_schema过于复杂&#xff0c;所以mysql在5.7版本中新增了sys schemma&#x…

Docker实战之Redis主从集群搭建实战

实战 本实验将练习三主三从的Redis的docker集群快速搭建&#xff0c;实现集群的动态扩容和缩容&#xff0c;主从切换等常见实践项目。 拉取镜像 docker pull redis:6.0.8搭建主从 docker run -d --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/red…

Allegro输出DXF文件操作指导

Allegro输出DXF文件操作指导 Allegro支持输出DXF文件,用于检查PCB的结构,具体操作如下 首先在PCB上打开需要的输出的层面,需要哪层开哪层,如下图所示 点击file-export 弹出一个对话框,输入文件名,格式选择Reversion14 ,单位选择mm,精度选择4 然后点击Edit 会出现一…

视频播放

QMediaPlayer不仅可以播放音频&#xff0c;还可以播放视频&#xff0c;不过要在屏幕上显示的话需要使用QVideoWidget和QGraphicsVideoItrm或自定义的类。QMovie 播放GIF文件QVideoWidget和QGraphicsVideoItrm都属于QMulimedia Widgets模块QVideoWidget 继承自QWiaget&#xff0…

Android Studio下载安装

一、下载 二、安装步骤 点击下载的安装包&#xff0c;选择地址的时候可以自定义&#xff0c;其他按照默认配置即可。 启动应用&#xff0c;开始配置 选择安装类型为标准安装&#xff1a; 选择主题 确认配置 同意协议 开始下载相关组件&#xff1a; 下载完成

SpringCloud - GateWay服务网关

文章目录一. Gateway概述1.Gateway是什么2. Gateway作用3. 微服务架构中网关的位置4. SpringCloud Gateway概念5. SpringCloud Gateway IO 模型二.Gateway的三大核心概念1. Route 路由2. Predicate 断言3. Filter 过滤4. 总结三.Spring Cloud Gateway工作流程四.服务搭建1. 创建…

Android 基础知识3-3(九妹)图怎么用呢?

1.本节引用&#xff1a; 可能有的一些疑问&#xff1a; 1.什么是.9图片&#xff1f; 答&#xff1a;图片后缀名前有.9的图片,如pic1.9.png这样的图片 2. .9图片能干嘛&#xff1f; 答&#xff1a; 在图片拉伸的时候特定的区域不会发生图片失真&#xff0c;而不失真的区域可以…

知识库指南4.0|AIGC Web3 元宇宙发展趋势的学习与实践指引

如何突破信息层面的认知&#xff0c;在 AIGC、Web3 与 元宇宙领域从 “围观” “看热闹” 到真正入门理解&#xff0c;并跟紧行业发展趋势&#xff0c;探索实践落地&#xff1f;&#xff08;阅读原文领取限量优惠券&#xff09;Mixlab小杜满足上述学习需求的知识库需要包含四要…

大数据(9f)Flink双流JOIN

文章目录概述开发环境使用状态列表实现 INNER JOIN&#xff08;双流connect后CoProcessFunction&#xff09;基于间隔的JOIN&#xff08;Interval Join&#xff09;基于窗口的JOIN&#xff08;Window Join&#xff09;概述 Flink双流JOIN可用算子或SQL实现&#xff0c;FlinkSQ…

图论基础学习笔记

图论1.简单图2.简单图的补图3.图的同构4.完全图5.偶图6.完全偶图1.简单图 简单图&#xff1a;无环无平行边的图。下图&#xff1a;左环右平行边 平凡图&#xff1a;G(1,0)G(1,0)G(1,0) 零图&#xff1a;G(p,0)G(p,0)G(p,0) 2.简单图的补图 补图&#xff1a;对于 G(V,E)G(V,…

继电器电路分析-继电器放电时间、反向冲击电压

继电器的应用&#xff0c;相信大家都知道&#xff0c;在电路中只要给它供电、断电也就可以工作了。 然而&#xff0c;它的应用细节&#xff0c;不知道大家有没注意 。下面谈谈我的观点。 01 现在流行的接法 如下图&#xff1a; 图中&#xff0c;继电器的线圈经过Q1作为开关…

《丞相好梦中杀人,我喜梦中听课》(1)密码学入门

前言 &#x1f340;作者简介&#xff1a;被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 &#x1f341;个人主页&#xff1a;红中 &#x1fad2;每日emo&#xff1a;等我把脸皮磨厚 &#x1f342;专栏地址&#xff1a;网安专栏 今天周日&#xf…

金融开放度指数-世界银行三位数字编码、ISO Alpha-3 Code等多指标数据

1、数据来源&#xff1a;http://web.pdx.edu/~ito/Chinn-Ito_website.htm 2、时间跨度&#xff1a;1970-2019 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; Chinn-Ito指数(KAOPEN)是衡量一个国家资本账户开放程度的指标。 该指数最初是在Chinn和Ito (Journal of D…