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

打码网站怎么做接口站酷网设计素材

打码网站怎么做接口,站酷网设计素材,城市建设管理,换友网站今天使用这个控件#xff0c;做一个模仿微信“按住-说话”的小功能#xff0c;最终效果如下#xff1a; 使用.NET MAUI实现跨平台支持#xff0c;本项目可运行于Android、iOS平台。 创建页面布局 新建.NET MAUI项目#xff0c;命名HoldAndSpeak MainPage.xaml中创建一个…今天使用这个控件做一个模仿微信“按住-说话”的小功能最终效果如下 使用.NET MAUI实现跨平台支持本项目可运行于Android、iOS平台。 创建页面布局 新建.NET MAUI项目命名HoldAndSpeak MainPage.xaml中创建一个PitContentLayoutGrid容器并对Grid容器进行如下布局 在手机屏幕的底部设置两行两列的布局 第一行第一列对应取消发送手势区域 第一行第二列对应语音转文字手势区域 第二行独占两列对应发送手势区域。 布局如下图所示 Grid x:NamePitContentLayoutOpacity1Grid.RowDefinitionsRowDefinition Height1* /RowDefinition Height1* //Grid.RowDefinitionsGrid.ColumnDefinitionsColumnDefinition Width1* /ColumnDefinition Width1* //Grid.ColumnDefinitions /Grid创建三个PitGrid控件并对这三个功能区域的PitGrid控件命名CancelPit、TransliterationPit分别对应了取消发送、语音转文字、发送。 为每个PitGrid控件添加内容 发送区域是一个底部弧形区域我们用一个巨大的圆形Y轴方向的偏移通过只保留屏幕底部往上的一部分圆形区域来实现底部弧形区域的效果代码如下 BoxView TranslationY450x:NameSendBoxHeightRequest1000WidthRequest1000CornerRadius500 /BoxView取消发送和语音转文字区域是一个圆形区域我们用一个正常大小的圆形来实现。 PitContentLayout区域整体代码如下 Grid x:NamePitContentLayoutOpacity1Grid.RowDefinitionsRowDefinition Height1* /RowDefinition Height1* //Grid.RowDefinitionsGrid.ColumnDefinitionsColumnDefinition Width1* /ColumnDefinition Width1* //Grid.ColumnDefinitionscontrols1:PitGrid x:NameCancelPitTranslationX-40PitNameCancelPitBoxView x:NameCancelBoxHeightRequest80WidthRequest80CornerRadius50Margin7.5Color{StaticResource PhoneContrastBackgroundBrush}VerticalOptionsCenterAndExpandHorizontalOptionsCenterAndExpand/BoxViewLabel x:NameCancelLabelTextColor{StaticResource PhoneContrastForegroundBrush}FontFamilyFontAwesomeFontSize28Rotation-10HorizontalOptionsCenterAndExpandMargin0/Label/controls1:PitGridcontrols1:PitGrid x:NameTransliterationPitPitNameTransliterationPitTranslationX40Grid.Column1BoxView x:NameTransliterationBoxHeightRequest80WidthRequest80CornerRadius50Margin7.5Color{StaticResource PhoneContrastBackgroundBrush}VerticalOptionsCenterAndExpandHorizontalOptionsCenterAndExpand/BoxViewLabel x:NameTransliterationLabelTextColor{StaticResource PhoneContrastForegroundBrush}FontSize28Text文Rotation10HorizontalOptionsCenterAndExpandMargin0/Label/controls1:PitGridcontrols1:PitGrid x:NameSendPitPitNameSendPitGrid.ColumnSpan2Grid.Row1BoxView TranslationY450x:NameSendBoxHeightRequest1000WidthRequest1000CornerRadius500Margin7.5Color{StaticResource PhoneContrastBackgroundBrush}VerticalOptionsCenterAndExpandHorizontalOptionsCenterAndExpand/BoxViewLabel x:NameSendLabelTranslationY30FontSize28Rotation45TextColor{StaticResource PhoneContrastForegroundBrush}FontFamilyFontAwesomeHorizontalOptionsCenterAndExpandMargin0/Label/controls1:PitGrid/Grid 效果如下 创建手势控件 创建一个手势控件。他包裹的内容。是一个带有按住说话的按钮。 controls1:PanContainer BackgroundColorTransparentx:NameDefaultPanContainerOnTappedDefaultPanContainer_OnOnTappedAutoAdsorptionFalseOnfinishedChoiseDefaultPanContainer_OnOnfinishedChoiseGrid PropertyChangedBindableObject_OnPropertyChangedVerticalOptionsStartHorizontalOptionsStartBoxView HeightRequest80WidthRequest250Margin7.5Color{StaticResource PhoneContrastBackgroundBrush}/BoxViewLabel x:NamePauseLabelHorizontalOptionsCenterAndExpandFontSize28TextColor{StaticResource PhoneForegroundBrush}Text按住 说话Margin0/Label/Grid/controls1:PanContainer此时应该是可以拖动并且在拖拽开始进入pit离开pit释放时分别触发StartInOutOver四个状态。 但我们希望在拖拽时隐藏这个按钮这将在创建动画章节将介绍。 创建TalkBox 创建一个圆角矩形用来显示正在说话的动画。 Grid Grid.Row1Opacity1x:NameTalkBoxLayoutBoxView x:NameTalkBoxHeightRequest80WidthRequest200CornerRadius20Margin7.5Color{StaticResource PhoneAccentBrush}VerticalOptionsCenterAndExpandHorizontalOptionsCenterAndExpand/BoxViewcontrols:PlayingMotionView HorizontalOptionsCenterAndExpandx:NameMotionViewMargin0/controls:PlayingMotionView/Grid /Grid效果如下 创建动画 拖拽物动画 在拖拽时我们希望可以隐藏拖拽物设置 PanScale和PanScaleAnimationLength属性为0代码如下 controls1:PanContainer BackgroundColorTransparentx:NameDefaultPanContainerOnTappedDefaultPanContainer_OnOnTappedAutoAdsorptionFalsePanScale0.0PanScaleAnimationLength0按钮激活动画 Codebeind代码中配置Active和DeActive方法用于激活和取消激活功能区域按钮的样式。 激活时对应功能区域按钮背景颜色变为白色字体颜色变为黑色并且放大到1.2倍。 取消激活时恢复到原来的样式。 代码如下 private void Active(BoxView currentContent, Label text, Color toColor, Color txtToColor, double scaleTo 1.2) {currentContent.AbortAnimation(ActivateFunctionAnimations);var parentAnimation new Animation();var txtFromColor text.TextColor;var animation2 new Animation(t text.TextColor GetColor(t, txtFromColor, txtToColor), 0, 1, Easing.SpringOut);var fromColor currentContent.Color;var animation4 new Animation(t currentContent.Color GetColor(t, fromColor, toColor), 0, 1, Easing.SpringOut);var animation5 new Animation(v currentContent.Scale v, currentContent.Scale, scaleTo);parentAnimation.Add(0, 1, animation2);parentAnimation.Add(0, 1, animation4);parentAnimation.Add(0, 1, animation5);parentAnimation.Commit(this, ActivateFunctionAnimations, 16, 300); }private void DeActive(BoxView currentContent, Label text) {currentContent.AbortAnimation(DeactivateFunctionAnimations);var parentAnimation new Animation();var txtFromColor text.TextColor;var txtToColor (Color)Application.Current.Resources[PhoneContrastForegroundBrush];var animation2 new Animation(t text.TextColor GetColor(t, txtFromColor, txtToColor), 0, 1, Easing.SpringOut);var fromColor currentContent.Color;var toColor (Color)Application.Current.Resources[PhoneContrastBackgroundBrush];var animation4 new Animation(t currentContent.Color GetColor(t, fromColor, toColor), 0, 1, Easing.SpringOut);var animation5 new Animation(v currentContent.Scale v, currentContent.Scale, 1.0);parentAnimation.Add(0, 1, animation2);parentAnimation.Add(0, 1, animation4);parentAnimation.Add(0, 1, animation5);parentAnimation.Commit(this, DeactivateFunctionAnimations, 16, 300); }在拖拽进入pit的事件中设置激活状态在拖拽离开pit的事件中设置取消激活状态。 case PanType.Out:switch (args.CurrentPit?.PitName){case CancelPit:DeActive(this.CancelBox, this.CancelLabel);break;case SendPit:DeActive(this.SendBox, this.SendLabel);break;case TransliterationPit:DeActive(this.TransliterationBox, this.TransliterationLabel);break;default:break;}break; case PanType.In:var parentAnimation new Animation();Color toColor default;double translationX default;double width default;switch (args.CurrentPit?.PitName){case CancelPit:Active(this.CancelBox, this.CancelLabel, Colors.White, Colors.Black);this.TalkBox.AbortAnimation(TalkBoxAnimations);break;case SendPit:Active(this.SendBox, this.SendLabel, Colors.Gray, Colors.Black, 1.0);break;case TransliterationPit:Active(this.TransliterationBox, this.TransliterationLabel, Colors.White, Colors.Black);break;default:break;}TalkBox动画 创建GetColor方法使用插值法用于获取渐变过程中获取当前进度的颜色 private Color GetColor(double t, Color fromColor, Color toColor){return Color.FromRgba(fromColor.Red t * (toColor.Red - fromColor.Red),fromColor.Green t * (toColor.Green - fromColor.Green),fromColor.Blue t * (toColor.Blue - fromColor.Blue),fromColor.Alpha t * (toColor.Alpha - fromColor.Alpha));}在进入功能区域时TalkBox的颜色偏移量和宽度都会发生变化创建一个复合动画TalkBoxAnimations用于触发TalkBox的动画效果。 this.TalkBox.AbortAnimation(TalkBoxAnimations);var fromColor this.TalkBox.Color;var animation2 new Animation(t this.TalkBox.Color GetColor(t, fromColor, toColor), 0, 1, Easing.SpringOut); var animation4 new Animation(v this.TalkBoxLayout.TranslationX v, this.TalkBoxLayout.TranslationX, translationX); var animation5 new Animation(v this.TalkBox.WidthRequest v, this.TalkBox.Width, width);parentAnimation.Add(0, 1, animation2); parentAnimation.Add(0, 1, animation4); parentAnimation.Add(0, 1, animation5);parentAnimation.Commit(this, TalkBoxAnimations, 16, 300);最终效果如下 Layout动画 创建一个用于显示功能区域和TalkBox的渐变动画用于在拖拽开始和结束时显示和隐藏这两个控件。 private void ShowLayout(double opacity 1) {this.PitContentLayout.FadeTo(opacity);this.TalkBoxLayout.FadeTo(opacity); }case PanType.Over:ShowLayout(0);break; case PanType.Start:ShowLayout();break;项目地址  Github:maui-samples
http://www.hkea.cn/news/14362132/

相关文章:

  • html5 国外网站php网站开发实用技术下载
  • 做的网站为什么手机上搜不到网站建设的公司联系方式
  • 南宁市两学一做网站上海企业网站备案
  • 贵阳德天信网站建设有模板了怎么建设网站
  • 做外贸上不了国外网站厦门海绵城市建设官方网站
  • 单片机程序员开发网站ysl千色t9t9t9成全
  • 网上给别人做设计的网站贺州住房和城乡建设部网站
  • 网站做多大的宽高南昌定制网站开发公司
  • 大学同学会网站建设方案企业征信系统查询官网
  • 东莞网站设计实力怎么样创建网站
  • 天津市网站制作公司利津网站定制
  • 晋江网站建设洛阳网站制作设计师做私单网站
  • 有没有教给做宝宝衣服的网站铜官山区建设局网站
  • wordpress 商城站下载地址wordpress自动短网址插件
  • 做网站页面大小多大有没有接做网站私活的平台
  • 网站域名重定向上海市住房和城乡建设部网站官网
  • 建设银行北海市分行网站阿里云 网站接入方式
  • ps做网站尺寸注册查询网站
  • 做电力项目信息的网站建筑人才网市场
  • 企业网站数防泄露怎么做上海一网通办
  • 有哪些可以在网上做兼职的网站保定网站设计优势
  • 做网站文字要求做网站绍兴
  • 淄博网站排名优化公司旅游前 做攻略有什么网站好用
  • 青岛排名推广网站优化和推广
  • wordpress免费搭建个人博客优化专业的公司
  • 如何提升网站转化率关键词怎么提取
  • 建设环境工程技术中心网站保定百度首页优化
  • 南宫28在线注册网站推广链接点击器
  • 济南怎么做网站算法工程师要学什么
  • 自己做培训需要网站吗wordpress安装部署