最新要闻
- 《流浪地球2》里的“硬核科技” 中国电信已经用上了
- 当前视讯!ChatGPT将英伟达AI GPU变成黄金 后者股价飙升超40%
- 《狂飙》带火鱼干店 老板:微信加烦了!剧中原来是这一集
- 当前焦点!Edge新版增加内容推荐按钮:打开甚至不用点
- 今日报丨比亚迪1月销量:汉卖出1.22万辆 宋Plus继续火爆
- 天天动态:车主展示特斯拉自动泊车入位 结果翻车:变成“自动撞车”
- 【天天速看料】价格暴降后特斯拉供不应求 马斯克:准备要涨了
- 宝能造车梦破碎:烧了80多亿元的观致 如今沦为法拍车
- 女孩4万多元的摩托 被男摩友加白糖报废!官方介入
- 全球即时:柔软顺滑 古今男士平角裤3条到手29.9元
- 世界视讯!休闲百搭 361° 运动束脚裤立减140元:49元起清仓价
- 环球速看:冰火两重天!四川一地昼夜温差38.6℃ 专家揭秘真相
- 今年开播有戏 “陈萍萍”演员吴刚回应《庆余年》第二季:很快了
- 奔驰被曝大砍产品线!19款车型或将淘汰 原因现实
- 环球视点!马斯克收费比微博狠多了:推特被曝企业“金V”认证付费:每月6770元
- 焦点热议:3年前旗舰也有份!中国广电剧透:小米10/青春版计划4月推送MIUI 14
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【全球速看料】MAUI新生6.9-控件辅助功能①:动画Animation
一、基本使用
1、MAUI为所有VisualElement对象,定义了一系列动画扩展方法,所以控制动画的原理很简单,在UI层通过x:Name定义视觉对象的变量名(或在后台代码中直接创建视觉对象),然后再后台代码中通过“扩展方法”执行动画。
//UI层:MainPage.xaml//后台代码:MainPage.xaml.cspublic partial class MainPage : ContentPage{ ......private async void btn_Clicked(object sender, EventArgs e) { await img.RotateTo(360, 5000); //RotateTo扩展方法,控制img对象在5秒内旋转360度,扩展方法即可以使用异步,也可以使用同步 img.Rotation = 0; //旋转结束后,将img的旋转属性恢复为0度 }}
2、内置的动画扩展方法
(相关资料图)
- RotateTo/RelRotateTo:旋转/相对旋转。
- RotateXTo:延X轴旋转。
- RotateYTo:延Y轴旋转。
- ScaleTo/RelScaleTo:缩放/相对缩放。
- ScaleXTo:延X轴缩放。
- ScaleYTo:延Y轴缩放。
- TranslateTo:延X轴和Y轴移动。
- FadeTo:淡入淡出。
- CancelAnimations:取消动画。
3、复合动画,控制多个动画的执行顺序
//动画可以组合//同步和异步可以组合在一起//如下FadeTo开始后,其它动画不会等待它结束//如下TranslateTo开始后,后面的TranslateTo会等待前一个动画结束后才开始private async void btn_Clicked(object sender, EventArgs e){ img.FadeTo(0, 8000); await img.TranslateTo(-100, 0, 1000); await img.TranslateTo(-100, -100, 1000); await img.TranslateTo(100, 100, 2000); await img.TranslateTo(0, 100, 1000); await img.TranslateTo(0, 0, 1000);}//Task.WhenAny中的动画,只要其中任何一个动画结束,整体就全部结束//以下任务执行顺序://1-2秒:旋转到180度,第一个ScaleTo扩大到2倍并结束动画//2-4秒:旋转继续到360度,第二个ScaleTo缩小到1倍await Task.WhenAny( image.RotateTo(360, 4000), //任务A image.ScaleTo(2, 2000) );await img.ScaleTo(1, 2000);//Task.WhenAll中的动画,全部完成后,整体才会结束//以下任务会同步一起执行await Task.WhenAll( img.RotateTo(307 * 360, 60000), img.RotateXTo(251 * 360, 60000), img.RotateYTo(199 * 360, 60000));
二、控制动画的缓动
1、基本使用:缓动效果指控制动画变化的速度,在扩展函数的最后一个参数指定,是一个枚举类型,如果未提定,默认为线性变化(即匀速变化)。如【img.RotateTo(360,5000,Easing.SpringIn);】。框架内置的缓动效果包括以下枚举类型:
- Linear:匀速变化。
- BounceIn:弹跳进入。
- BounceOut:弹跳结束。
- CubicIn:缓慢加速。
- CubicInOut:缓慢加束后,缓慢减速。
- CubicOut:缓慢减速。
- SinIn:平滑加速,和Cubic效果差不多。
- SinInOut:平滑加速后,平滑减速,和Cubic效果差不多。
- SinOut:平滑减速,和Cubic效果差不多。
- SpringIn:开始时有一个回弹效果,然后开始加速。
- SpringOut:逐渐减速,结束时有一个回弹效果。
2、自定义缓动效果:缓动参数实际上是一个回调函数。我们将变化过程分解为从0到1的连续时序点,通过控制返回值来控制缓动效果。比如有一个向右平移100像素的动画,在0.01时序点时,应该平移1像素,如果返回值为0.02,会变成平移2像素,动画会表现为加束。自定义缓动有三种方式,语法上只是三种回调函数的表达区别,主要还是返回值的算法比较复杂,了解一下吧。
1)函数方式:
private async void btn_Clicked(object sender, EventArgs e){ await img.RotateTo(360,3000, (Easing)CustomEase); img.Rotation = 0;}//返回值分别为0,0.2,0.4,0.6,0.8,1//缓动效果为离散跳跃方式旋转,即一顿顿的旋转double CustomEase(double t){ return t == 0 || t == 1 ? t : (int)(5 * t) / 5.0;}
2)Func
private async void btn_Clicked(object sender, EventArgs e){ FuncCustomEaseFunc = t => 9 * t * t * t - 13.5 * t * t + 5.5 * t; await img.RotateTo(360,3000, CustomEaseFunc); img.Rotation = 0;}
3)Easing构造函数
private async void btn_Clicked(object sender, EventArgs e){ await img.RotateTo(360,3000, new Easing(t => 1 - Math.Cos(10 * Math.PI * t) * Math.Exp(-5 * t))); img.Rotation = 0;}
三、自定义动画
1、定义一个旋转动画
private void btn_Clicked(object sender, EventArgs e){ /* ①创建动画:最少需要callback、start、end三个参数。 * callback:回调函数定义目标对象属性,其中回调参数v指动画值 * start:属性开始值 * end:属性结束值 * easing:缓动效果,默认值为null。一般在执行动画时再指定 * finished:动画执行完后的回调函数,默认值为null。一般在执行动画时再指定 */ var animation = new Animation(callback: v => img.Rotation = v, start: 0, end: 360, easing: null, finished: null); /* ②执行动画:调用animation的Commit方法。参数如下: * owner:持有动画的对象,可以是任意对象。和name组合一起使用,主要用于判断动画是否在执行,以及取消动画 * name:动画名称,可以是任意名称。和owner一起使用,如取消动画【img.AbortAnimation("MyAnimation");】 * rate:动画速度,默认值为16,一般保持默认值 * length:动画持续时间 * easing:缓动效果 * finished:动画结束后执行的回调,回调参数v为属性的最终值 * repeat:指示动画是否重复执行,如果返回true,则重复执行 */ animation.Commit(owner:img, name:"MyAnimation", rate:16, length:5000, easing:Easing.SpringIn, finished:(v, c) => img.Rotation = 0, repeat:() => true);}
2、以上案例使用简写的方式
private void btn_Clicked(object sender, EventArgs e){ //以上动画可以简写为(由于参数比较多,我们都以命名参数的方式来写): new Animation(callback: v => img.Rotation = v, start: 0, end: 360) .Commit(owner:this, name:"MyAnimation", length:5000, easing:Easing.SpringIn);}
3、一个动画中可以创建子动画,实现复合动画的效果
private void btn_Clicked(object sender, EventArgs e){ //Animation对象实际上是一个集合,所以可以在一个Animation对象里添加子动画 //Animation集合的项目,有三个成员,子动画开始时间、子动画结束时间、子动画对象。开始和结束时间,是相对于父动画而言,从0至1//缓动效果即可以在创建动画对象时指定,也可以在执行时指定,但创建对象时指定的缓动权限更高。 new Animation { {0, 0.5, new Animation(callback:v=>img.Scale=v, start:1, end:2, easing:Easing.BounceIn) }, {0, 1, new Animation(callback:v=>img.Rotation=v, start:0, end:360, easing:Easing.SinIn) }, {0.5, 1, new Animation(callback:v=>img.Scale=v, start:2, end:1, easing:Easing.SpringOut) } } .Commit(owner:this, name:"AllAnimation", length:5000);}
4、为任意值类型的属性创建动画:前述动画都是针对大小、位置、角度和透明度属性等。通过Animation,可以对任意VisualElement的任意值类型属性进行动画控制。
//以下案例,执行Lable字体大小变化的动画private void btn_Clicked(object sender, EventArgs e){ new Animation(callback:v=>lable.FontSize=v, start:16, end:80) .Commit(owner:this, name:"FontSizeAnimation", length:5000, easing:Easing.BounceIn);}
5、综合上述,我们可以自定义一个类似【RotateTo】这样的动画扩展方法。可详见文档案例
-
【全球速看料】MAUI新生6.9-控件辅助功能①:动画Animation
一、基本使用1、MAUI为所有VisualElement对象,定义了一系列动画扩展方法,所以控制动画的原理很简单,...
来源: 【全球速看料】MAUI新生6.9-控件辅助功能①:动画Animation
集合框架
10 正则表达式应用
《流浪地球2》里的“硬核科技” 中国电信已经用上了
全球报道:超详细--redis在Linux环境搭建主从复制
当前视讯!ChatGPT将英伟达AI GPU变成黄金 后者股价飙升超40%
《狂飙》带火鱼干店 老板:微信加烦了!剧中原来是这一集
焦点报道:为什么 L1 正则化能做特征选择而 L2 正则化不能
Linux环境下:程序的链接, 装载和库[可执行文件的装载]
当前焦点!Edge新版增加内容推荐按钮:打开甚至不用点
今日报丨比亚迪1月销量:汉卖出1.22万辆 宋Plus继续火爆
当前头条:[数据结构] 哈希表 (开放寻址法+拉链法)
天天动态:车主展示特斯拉自动泊车入位 结果翻车:变成“自动撞车”
【天天速看料】价格暴降后特斯拉供不应求 马斯克:准备要涨了
热点评!迁移学习(HDAN)《Heuristic Domain Adaptation》
美团索命一问:一个SQL ,怎么分析加了哪些锁? 含4大场景、8个规则
宝能造车梦破碎:烧了80多亿元的观致 如今沦为法拍车
女孩4万多元的摩托 被男摩友加白糖报废!官方介入
读Java实战(第二版)笔记01_Java的变化
全球即时:柔软顺滑 古今男士平角裤3条到手29.9元
世界视讯!休闲百搭 361° 运动束脚裤立减140元:49元起清仓价
环球速看:冰火两重天!四川一地昼夜温差38.6℃ 专家揭秘真相
今年开播有戏 “陈萍萍”演员吴刚回应《庆余年》第二季:很快了
python的基础知识1
奔驰被曝大砍产品线!19款车型或将淘汰 原因现实
环球视点!马斯克收费比微博狠多了:推特被曝企业“金V”认证付费:每月6770元
焦点热议:3年前旗舰也有份!中国广电剧透:小米10/青春版计划4月推送MIUI 14
《流浪地球2》票房破32亿元 导演谈第3部:原班人马再来一遍
全球最资讯丨浙江台州最大汽车经销商老板跑路 旗下19家4S店全部关停
12.4万保时捷首单买家发声:保时捷答应优惠卖车
[数据结构] 树、森林的遍历
每日时讯!MAUI新生2.5-数据绑定和MVVM:MVVM的属性验证
当前速递!父亲借女儿3万压岁钱不还被起诉 法院:应还本金及利息
焦点观察:1万元!佳能入门级全画幅相机EOS R8规格曝光
世界微速讯:为S23让路!三星Galaxy S22京东秒杀:骁龙8小屏旗舰 3569元
环球微头条丨豆瓣8.1分!《三体》主创:能拍中国科幻大作 此生无憾
低代码平台前端的设计与实现(三)设计态画布DesignCanvas的设计与实现
热资讯!重庆一景区煮麻辣汤圆:下次元宵佳节还得等384天
男子打包螺蛳粉开车24小时运回北京 只因朋友圈一句话:这是真爱
【天天新视野】用户滑雪频繁触发iPhone车祸检测功能 苹果:已进行了优化 同时派代表考察
天天快播:甜品级游戏本价格已曝光:搭载RTX 4050/4060
环球消息!5 组合数据类型
今日讯!短记我的二十五岁,如落叶般随风飘荡。
世界观焦点:java基础:流程控制
女子春节连打4通宵麻将:患上突发性耳聋
国产显卡搞定“显卡杀手”:摩尔线程MTT S80居然能跑《孤岛危机》
【世界独家】极限挤牙膏!三星Galaxy S23系列用残血版LPDDR5X内存
世界微动态丨wireshark 抓包整理———— 从一个小案例开始 [一]
【全球热闻】游客洪崖洞花30元找当地大爷抄近道 只花2分钟:网友道出真相
速讯:博纳影业总裁妻子金巧巧否认暗指《满江红》排片多、不好看:个人喜好
颜值最高的白色手机来了!vivo X90告白下周预售:天玑9200加持
天天消息!Python教程:IO
零下10度静止一夜不掉电!“车主”盛赞恒驰5 OTA效果好
当前视点!java基础:java基础语法
大众也不香了!比亚迪ATTO 3获德媒超高认可:钟爱刀片电池
快资讯:CPU性能提升10%!13代酷睿笔记本测试数据出炉
【全球报资讯】盖茨向马斯克“泼冷水”:殖民火星完全浪费钱
世界新资讯:医生发现19岁阿尔兹海默症患者:已知最年轻
SQL SERVER——高可用技术概述
环球微头条丨用ChatGPT写作业?新算法给AI生成文本加水印:置信度高达99.999999999994%
快播:【Redis场景拓展】秒杀问题-全局唯一ID生成策略
美团一面:InndoDB 单表最多 2000W,为什么?小伙伴竟然面挂
每日精选:2个月没人管!AMD老显卡终于要有新驱动了
奢侈品不愁卖!LV将涨价20% 世界首富放言:中国人有钱
全球看热讯:Andlua+实现WakeUpOnline远程开机
Docker搭建本地私有仓库
世界即时:vue/ts 新建项目时好用的配置 【vite.config.ts、tsconfig.json、】
天天热点!大爷看《狂飙》入戏屏幕前举杯痛饮 被演技折服:口碑大剧结尾你满意吗?
厉害!中国半导体领域科研论文数量持续全球第一 光触媒等已超美国
【缓存策略及实践】前端如何配置 HTTP 缓存机制
全球简讯:为什么感觉工资过万很普遍了?打打字就能月入过万你心动吗?央视揭秘新骗局
《生化危机4:重制版》第五章演示:里昂和碍事梨合作通关
云南小女孩骑鸵鸟上学从容淡定 挡眼睛控制方向:网友调侃是大象年检了
观焦点:造车新势力轿车月榜Top2 长安深蓝SL03迎开门红:1月交付6137台
环球快消息!越野车开进古河床随意碾压:改装牧马人无视警示牌“撒野” 专家:保护有难度
天天微资讯!2899元价格屠夫!XiaoMI Book 12.4 二合一评测:办公追剧不在话下
微头条丨C盘扩容:不要轻易转换动态磁盘 Dynamic Disk
乳腺癌已成为全球第一大癌症:我国每年新增42万 比国外发病早
今日观点!投资不过山海关对东北伤害狠!老工业基地全力发展新能源车 专家称沈阳可成深圳
世界今热点:全球首位!以色列总统使用ChatGPT写演讲稿:开头、结尾感受下
全球看热讯:《角斗士2》明年上映
全球热点评!阿里云盘致歉:昨晚系统故障 全平台无法加载内容
TGA年度最佳!《双人成行》销量破1000万:双人游戏天花板
环球今日报丨特斯拉降价到20万出头 网友忍不住要下单 宝马奔驰大众:我们不跟
速递!腾讯视频官宣:《三体》番外剧《三体:大史》即将上线
2023年1月随笔
世界今日报丨大跃进了!今年小米新机都将抛弃USB 2.0
今日立春:二十四节气之首 万物开始复苏
8个你可能不知道答案的常见JavaScript面试问题
世界热资讯!荣耀北斗卫星通信专利获批通过 荣耀Magic5系列将首发?
B站《三体》动画“晚节不保”:即将跌破4分
全球实时:再也不怕手一抖跳广告了!规范App乱跳转新标准出台
热门:坚挺四年的苹果:栽了
关注:你以为你真的会玩《俄罗斯方块》?看完这些大神 我大悟了
UI通过元素定位实现特定区域截图
全球热推荐:2022浙江高考数学导数压轴解析
每日速讯:春节开特斯拉出行的国内车主真不少!自驾万里的数以百计
微头条丨开年如何选购生产力整机!锐龙9 7950X vs i9-13900K对比测试:谁是更好的创作工具?
【全球聚看点】客人泡茶放近50根藏红花吓坏主人 真大补药:喝完身体并没有不适
四川公司回应招聘“下班到点跑的绕道”:本职工作完成不用加班