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

上海手机网站建设哪家专业中国建设银行用e路这么进网站

上海手机网站建设哪家专业,中国建设银行用e路这么进网站,如何进入网站后台管理网站,电子商务简介今天使用这个控件#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.dnsts.com.cn/news/274974.html

相关文章:

  • 婚庆网站制作公司购买的网站如何换背景
  • 做网站的企业是什么行业用自己网站做邮箱域名
  • 专门 做鞋子团购的网站有哪些中国城乡建设部网站房贴文件
  • 站长音效开封做网站
  • 巴中手机网站建设淘宝官网首页
  • 网站建设公司利润如何进行营销型企业网站的优化
  • 网站职业技能培训有哪些项目设计软件教程
  • 自己做网站页面wordpress支付平台
  • 网站与域名的区别石家庄的网站建设
  • 免费php企业网站管理系统工业互联网平台公司
  • 网站没有收录三合一模板网站
  • 在线建站平台免费建网站深圳注册公司网上申请入口
  • 网站开发的历史drupal wordpress性能
  • 能够做简历的网站怎样建设小游戏网站
  • 制作电子商务网站页面设计包装
  • 大型的平台类网站建设需要多少资金怎么样制作app的步骤
  • 房产网站建设公司wordpress首页文章数
  • 临沂企业网站开发官网用于网站建设的图片
  • 免费建网站哪家好咸宁网站设计公司
  • 注册公司在哪个网站注册网站建设接口开发
  • 做一个营销型的网站多少钱wordpress的数据库名
  • 白云区同和网站建设网店美工分为几个级别
  • 想建设个网站无锡网站搜索优化
  • 南京网站制作案例微信公众号关注
  • 购物网站开发的管理可行性怎么建设淘客自己的网站、
  • 怎样建设个自己的网站首页centos7怎么做网站服务器
  • 网页设计流程步骤宁波做网站优化哪家好
  • 企业网站建设的背景做系统哪个网站上的好
  • 在线培训网站怎么做wordpress仿站步奏
  • 企业网站建设都需要什么准备百度推广运营