HarmonyOS 应用开发-使用colorPicker实现背景跟随主题颜色转换

介绍

本示例介绍使用image库以及effectKit库中的colorPicker对目标图片进行取色,将获取的颜色作为背景渐变色,通过swiper组件对图片进行轮播,

效果图预览

使用说明

直接进入页面,对图片进行左右滑动,或者等待几秒,图片会自动轮播,图片切换后即可改变背景颜色。

实现思路

  1. 在事件onAnimationStart切换动画过程中通过Image模块相关能力,获取图片颜色平均值,使用effectKit库中的ColorPicker智能取色器进行颜色取值。
    const context = getContext(this);//获取resourceManager资源管理器const resourceMgr: resourceManager.ResourceManager = context.resourceManager;const fileData: Uint8Array = await resourceMgr.getMediaContent(this.imgData[targetIndex]);//获取图片的ArrayBufferconst buffer = fileData.buffer;//创建imageSourceconst imageSource: image.ImageSource = image.createImageSource(buffer);//创建pixelMapconst pixelMap: image.PixelMap = await imageSource.createPixelMap();effectKit.createColorPicker(pixelMap, (err, colorPicker) => {//读取图像主色的颜色值,结果写入Colorlet color = colorPicker.getMainColorSync();})
  1. 同时通过接口animateTo开启背景颜色渲染的属性动画。全局界面开启沉浸式状态栏。
   animateTo({ duration: 500, curve: Curve.Linear, iterations: 1 }, () => {//将取色器选取的color示例转换为十六进制颜色代码this.bgColor = "#" + color.alpha.toString(16) + color.red.toString(16) + color.green.toString(16) + color.blue.toString(16);})
  1. 通过属性linearGradient设置背景色渲染方向以及渲染氛围。
    linearGradient({//渐变方向direction: GradientDirection.Bottom,//数组末尾元素占比小于1时,满足重复着色的效果colors: [[this.bgColor, 0.0], [Color.White, 0.5]]})

工程结构&模块类型

   effectKit                                  // har类型|---pages|---|---MainPage.ets                       // 视图层-场景列表页面

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

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

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

相关文章

谷粒商城学习日志

谷粒商城学习日志 学习计划完成时间备注学习目录大纲 学习计划 每天学习2小节视频课程 完成时间 共407节,预计200天完成 备注 计划根据实际执行情况进行调整,7天为周期一调整 每天学习完成内容更新此大纲 学习目录大纲

对称排序(蓝桥杯)

文章目录 对称排序问题描述模拟 对称排序 问题描述 小蓝是一名软件工程师,他正在研究一种基于交换的排序算法,以提高排序的效率。 给定一个长度为 N 的数组 A,小蓝希望通过交换对称元素的方式对该数组进行排序。 具体来说,小蓝…

C语言 函数——函数原型

目录 如何合并成一个完整的程序? 函数原型与函数定义的区别 函数原型的作用 如何合并成一个完整的程序? 问题:在一个函数中调用另一个函数,需要具备哪些条件呢? 若函数的定义出现在函数调用之前 若函数的定义出现…

转让北京通信工程施工二级资质公司要求和价格

随着通信市场的不断扩大,通信工程企业的发展也越来越快。在通信施工市场中,拥有二级资质的企业才能够更好、更稳定地参与市场竞争,可是资质申请过程较为繁琐,对于很多中小企业而言缺少人力、财力、精力等情况下,其实资…

数据是一维数据,每一条数据对应一个标签,利用tensorflow深度学习框架写一个带自注意力机制的卷积神经网络,并进行预测训练

以下是一个使用 TensorFlow 实现带自注意力机制的卷积神经网络(Convolutional Neural Network, CNN)进行训练和预测的示例代码: import tensorflow as tf# 定义模型的超参数 learning_rate 0.001 epochs 10 batch_size 32# 构建带自注意力…

网站压力测试和Locust

一、压力测试介绍 网站压力测试是一种评估网站性能、可靠性和稳定性的方法。它通过模拟大量用户同时访问网站,来测试网站的响应时间、吞吐量、资源利用率等指标,从而发现网站的潜在问题和瓶颈。下面我将从几个方面详细介绍网站压力测试: 1、压力测试的目的 评估网站在高并发…

ASTM F2613-19儿童折叠椅和凳子安全标准

ASTM F2613-19折叠椅和凳子安全标准 美国消费品安全委员会(CPSC)发布的 ASTM F2613-19 儿童折叠椅和凳子的强制性安全标准,已于2020年7月6日生效,并 被纳入联邦法规《16 CFR 1232儿童折叠椅和凳子安全标准》 。 折叠椅和凳子产品示…

用Python编写GUI程序将JPEG文件按文件名顺序插入PDF文件

在Python编程中,处理文件和图像是常见的任务之一。最近,我遇到了一个有趣的问题:如何通过编写一个GUI程序来将一个文件夹中的JPEG文件按文件名顺序插入到一个新的PDF文件中?在这篇博客中,我将分享我使用Python、wxPyth…

DC-DC芯片D1509适用于工控主板、TV板卡、安卓主板、车载功放电源等产品方案应用。

一、应用领域 适用于工控主板、TV板卡、安卓主板、车载功放电源等产品方案应用。 二、功能介绍 D1509是芯谷科技推出的一款输入耐压40V、输出电压1.23-37V可调、输出电流最大2.0A的高效率、高精度DC-DC芯片,其输出电压有固定3.3V、5.0V和12.0V的版本&#xff…

网络安全行业现在还能入吗?

这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入行业,能享受行业发展红利。…

【ArcPro 加载项】图层组排序子图层

最近做控规,CAD湘源用的比较多。 这里就需要再夸夸Pro3.0,对CAD和湘源的支持非常到位。顺便再鞭尸Pro3.2,规划人千万不要更新。 【ArcGIS 小贴士】Pro3.2逆向更新,不能正常显示CAD、湘源 等等,发现一个问题&#xf…

跨云迁移实操:AWS RDS for mysql 迁移至腾讯云mysql --DTS方式

实操场景:从AWS RDS for mysql 迁移至腾讯云云数据库Mysql,通过腾讯云数据传输服务DTS,进行实时全量增量迁移. 下面九河云给大家带来具体实践介绍 购买迁移数据库--目的端机器(腾讯云MYSQL) 可以源端为5.7所以新建一个参数模版 其…

常见的解析漏洞总结

文件解析漏洞 文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。 比如网站管理员配置不当,导致php2、phtml、ascx等等这些文件也被当成脚本文…

回归测试覆盖率指的是什么?

定义 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。 在软件开发过程当中,一旦软件代码做了修改,就有可能引入新的问题,所以这个时候就需要把已经完成了的验证用例重新跑一下&…

Vue3中父子组件的传值问题

父子组件传值 在Vue3中如果想对子组件进行传值操作,则需要首先在const中定义多个响应式参数,必须记住的是,定义了响应式参数之后一定要在setup中return该参数,否则上面的template中不会识别,然后在template中定义 &l…

如何實現Apache HTTPS正向代理?

Apache是一款開源的、可高度定制的HTTP伺服器軟體,它位於客戶端和目標伺服器之間,用於從目標伺服器獲取資訊並將其返回給客戶端。它能提供各種功能,包括安全性、隱私性和數據壓縮。其中代理模組能夠支持正向代理和反向代理兩種模式。 而正向…

vue3+Ts+Ant Design Vue +天地图组件封装

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vue3TsAntDesign-Vue组件天地图组件的封装 示例图 首先,在index.html引入天地图资源,vue3选择v4版本 <script src"http://api.tianditu.gov.cn/api?…

【蓝桥杯每日一题】4.8 公约数

题目来源&#xff1a; 4199. 公约数 - AcWing题库 问题描述&#xff1a; ​ 找到最大整数x&#xff0c;需满足下面两个条件 x x x是 a a a, b b b的公约数 l < x < r l<x<r l<x<r 思路&#xff1a; 找到 a a a, b b b两个数的最大公约数 g c g c d (…

Python模块导入机制详解

大家好&#xff01;今天我们要一起踏上一段Python编程的奇妙旅程&#xff0c;探索那个神秘的“import”命令&#xff0c;就像在海盗宝藏地图上寻找隐藏的金币。你准备好跟着我深入学习Python模块的进口大法了吗&#xff1f; 首先&#xff0c;你知道吗&#xff1f;在Python中&a…

【c++leetcode】1. Two Sum

问题入口 遍历一遍哈希表: O(n) class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> numMap;for (int i 0; i < nums.size(); i){int complement target - nums[i];if(numMap.count(complemen…