]
[
Color(0xFFFFB164),
Color(0xFFED6230),
]),
  1. 设置阴影,同样在在1中Container的BoxDecoration中添加boxShadow:

boxShadow: [
BoxShadow(
// 阴影偏移
offset: Offset(0, 40.0),
// 1为正常状态否则为异常状态
color: type == 1
? Color(0xFF1376EE)
: Color(0xFFED6230),
// 投影模糊程度
blurRadius: 36.0,
// 投影扩散程度,大于0时向外扩散,小于0时呈内聚
spreadRadius: -36.0),
]),

  1. 设置雷达扫描样式:

class RadarPainter extends CustomPainter {
final double angle;
Paint _paint = Paint()…style = PaintingStyle.fill;

RadarPainter(this.angle);

@override
void paint(Canvas canvas, Size size) {
var radius = min(size.width / 2, size.height / 2);
// 设置扫描线样式,白色,透明度从0.01过渡到0.5,角度为pi/9=20°
_paint.shader = ui.Gradient.sweep(
Offset(size.width / 2, size.height / 2),
[
Colors.white.withOpacity(0.01),
Colors.white.withOpacity(0.1),
Colors.white.withOpacity(0.2),
Colors.white.withOpacity(0.3),
Colors.white.withOpacity(0.4),
Colors.white.withOpacity(0.5)
],
[0.0, 0. 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 2, 0.4, 0.6, 0.8, 1.0],
TileMode.clamp,
.0,
pi / 9);

canvas.save();
// 扫过的角度绘制计算
double r = sqrt(pow(size.width, 2) + pow(size.height, 2));
double startAngle = atan(size.height / size.width);
Point p0 = Point(r * cos(startAngle), r * sin(startAngle));
Point px = Point(r * cos(angle + startAngle), r * sin(angle + startAngle));
canvas.translate((p0.x - px.x) / 2, (p0.y - px.y) / 2);
canvas.rotate(angle);

canvas.drawArc(
Rect.fromCircle(
center: Offset(size.width / 2, size.height / 2), radius: radius),
0,
pi / 9,
true,
_paint);
canvas.restore();
}

@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}

  1. 雷达扫描属于动画,点击按钮时显示动画,打卡成功后隐藏动画,设置相关动画:

// 动画控制器初始化
radarController = AnimationController(duration: const Duration(seconds: 1), vsync: this);
radarController.addStatusListener((status) {
if (status == AnimationStatus.completed) {
isShowRadar = false;
}
});
animation = Tween(begin: .0, end: pi * 2).animate(radarController);

Visibility(
visible: isShowRadar,
child: AnimatedBuilder(
animation: animation,
builder: (context, child) {
return Container(
height: 144.0,
width: 144.0,
child: CustomPaint(
painter: RadarPainter(animation.value),
),
);
}),
),

// 销毁
@override
void dispose() {
radarController.dispose();
super.dispose();
}
7. 组装,需要将雷达动画覆盖在画好的打卡按钮上,同时打卡按钮需要具备点击功能:
GestureDetector(

Flutter仿钉钉打卡相关推荐

  1. android仿钉钉日程日历,Flutter仿钉钉考勤日历的示例代码

    本文主要介绍了Flutter仿钉钉考勤日历的示例代码,分享给大家,具体如下: 效果 原型 开发 1. 使用 // 考勤日历 DatePickerDialog( initialDate: DateTim ...

  2. 仿钉钉考勤统计页面的日历组件,通过日历展示每日考勤打卡情况,支持在日历上打两种不同类型的点,大致适配各种分辨率效果图

    原文链接:uniapp : 仿钉钉考勤统计页面的日历组件,通过日历展示每日考勤打卡情况,支持在日历上打两种不同类型的点,大致适配各种分辨率 - northwest - 博客园 (cnblogs.com ...

  3. Android开发-使用高德地图SDK实现仿钉钉打卡的功能

    前 言 LBS(基于地理位置服务)是当前移动互联网大部分应用不可或缺的功能,基于地理位置服务的Android平台的开发是主要用于Android系统作为载体,我们可以利用定位出的位置进行许多丰富多彩的操 ...

  4. 拆解钉钉流程审批功能:卡片式配置的审批流是怎样设计的?

    有个客户要求我们做个定制开发,客户觉得钉钉的操作体验比较不错(用户使用的惯性),要求我们要实现钉钉的自动配置审批流程,不过幸不辱命,对比个钉钉的流程审批.表单配置的相关功能,做了个Java私有化的版本 ...

  5. android基于MVP小说网络爬虫、宝贝社区APP、仿虎扑钉钉应用、滑动阴影效果等源码...

    Android精选源码 android宝贝社区app源码 android仿Tinder最漂亮的一个滑动效果 android仿滴滴打车开具页,ListView粘性Header Android基于MVP模 ...

  6. android基于MVP小说网络爬虫、宝贝社区APP、仿虎扑钉钉应用、滑动阴影效果等源码

    Android精选源码 android宝贝社区app源码 android仿Tinder最漂亮的一个滑动效果 android仿滴滴打车开具发票页,ListView粘性Header Android基于MV ...

  7. android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...

    Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...

  8. 蚂蚁森林快捷指令_利用快捷指令实现钉钉自动化打卡

    不知道大家上班有没有忘记打卡的经历呢? 今天就教大家通过快捷指令,实现自动化钉钉打卡. 前提条件: iOS13.1或以上系统 快捷指令APP 首先我们要在闹钟App中,新建一个打卡的时间.比如比上班提 ...

  9. 同步考勤数据 钉钉_作为学校,我为何选择微校wxiao考勤打卡?

    随着移动互联网的兴起,越来越多的中小学摒弃了传统纸质考勤方式,采用智能考勤. 目前,最常用的智能考勤方式可分为基于非移动端和移动端两种. 其中,基于非移动端的包括人脸识别.指纹识别.虹膜识别考勤方式, ...

  10. 钉钉怎么设置考勤打卡规则

    1.首先在电脑上登陆钉钉后台,然后点击如图所示的钉钉考勤打卡 钉钉后怎么设置考勤打卡规则? 2.比如一个公司生产型企业 互联网部门上班时间是 周一到周五上班时间 8:30-5:30 周六上班 8:30 ...

最新文章

  1. 打破Transformer宿命,新秀VOLO开源!横扫CV多项记录,首个超越87%的模型
  2. Doxygen生成注释文档
  3. Linux驱动调试中的Debugfs的使用简介
  4. js获取dom html元素属性,JS如何通过元素的CLASS属性得到对应的DOM对象?
  5. imagemagick, imagick和magickwand编译安装
  6. 【王道操作系统笔记】操作系统的发展和分类
  7. C++之编写dll库
  8. 【先定一个小目标】Postgresql允许远程访问配置修改
  9. hdu5033 Building 单调队列
  10. 深入浅出推荐系统(一):推荐系统基本架构
  11. 常用编程语言介绍及各语言特点
  12. We‘re sorry but XX doesn‘t work properly without JavaScript enabled. Please enable it to continue
  13. 系统分析员到底做什么?
  14. win10系统vmware虚拟机安装macOs Monterey
  15. OPENCV+VS2008+SQLserver图片存储数据库开发
  16. 69.46.68.92 index.php,【英联雅思】搞定四六级又战托福雅思?先测测自己的词汇量有多少吧~...
  17. 一张图看懂苹果MacBook所有屏幕分辨率
  18. BUUCTF misc 九连环隐写
  19. 红叶李之Linux bash 基础特性
  20. opcclient源码OPC客户端DA源码(c#开发)

热门文章

  1. 为什么拿相机对着电脑屏幕照相,照片会出现波纹?
  2. 今天说说反爬虫与反反爬虫
  3. linux逻辑文件块,Linux文件系统和逻辑卷管理命令(一)
  4. python中nomodulenamed怎么解决_python3.6如何解决Nomodulenamed‘xxx’的问题?
  5. 在HTML 中嵌入 JS 代码的三种方式
  6. html中怎么引用js语言,HTML怎么引用javascript?
  7. 面向开放域密集检索多视图文档表示学习,微软提出​MVR,性能SOTA!(ACL 2022)...
  8. Python:好看壁纸的都在某度图片库了,看我一举拿下
  9. ARM-DAPLINK 仿真器硬件解析
  10. 原生js本地存储、获取、删除、清空