一、效果图

出于好奇,做了一个模仿钉钉考勤统计的圆形控件,会按照设置的比例填充,效果如下:

二、原理

不感兴趣的可以不往下看,代码已经上传到github,连接:https://github.com/861493711/CircleRatioView

如上图所示,首先我们从最简单的部分开始,先画出外圆和内圆,再在两圆之间的间隙填充有色弧线,到这一部分为止,我相信大部分的人都可以做到,接下来最难的部分就是画出弧线两端的半圆,我在弧线两端画的是整个圆,展示出来的效果跟画半圆的结果是一样的,我们已知外圆的半径为R,外圆圆心为(a,b),弧线两端小圆的半径为r(该数值为外圆和内圆之间的间隙的一半),而且我们很容易就知道弧线两端小圆的圆心在半径为R-r,圆心为(a,b)的圆上,然后计算出小圆偏移的圆心角t,最后根据圆的参数方程

x=a+r Cos t,y=b+r Sin t

得出小圆的圆心位置,就能画出弧线两端小圆了,剩下的就只剩画出园内的字符串了,这个很简单就不说了,直接看代码应该就可以明白了

有问题可以在评论区跟我讨论。

仿钉钉考勤统计圆形控件相关推荐

  1. Android仿keep运动轨迹动画,Android仿Keep运动休息倒计时圆形控件

    仿Keep运动休息倒计时控件,供大家参考,具体内容如下 源码 控件本身非常非常简单,唯一难点在于倒计时期间动态增减时长,如果说动态增减时长是瞬间完成的,倒也没什么难度,但是如果是需要花一定时间做动画的 ...

  2. 高仿钉钉和小米的日历控件

    CalendarExaple 项目地址:codbking/CalendarExaple 简介:高仿钉钉和小米的日历控件 更多:作者   提 Bug   示例 APK    标签: CalendarVi ...

  3. android高仿小米日历,高仿钉钉和小米的日历控件

    i# 简介 这是一个高仿钉钉和小米的日历控件,支持快速滑动,界面缓存.想要定制化UI,使用起来非常简单,就像使用ListView一样 一些特点: 可以自定义日历控件UI 支持快速滑动 支持农历和阳历 ...

  4. android高仿钉钉和小米的日历控件

    原文地址:http://www.jianshu.com/p/622fdded4dc9 简介 这是一个高仿钉钉和小米的日历控件,支持快速滑动,界面缓存.想要定制化UI,使用起来非常简单,就像使用List ...

  5. 自定义圆形控件 RoundImageView

    1.自定义圆形控件 RoundImageView package com.ronye.CustomView; import android.content.Context; import androi ...

  6. Android 遥控器按键 布局,Android 类遥控器圆形控件 扇形按钮 带中间按钮

    Android 类遥控器圆形控件 扇形按钮 带中间按钮 前言 效果图 使用方法 添加依赖 在布局中使用 参数设定 设定是否有中间按钮 设定正常情况下的中间按钮的背景颜色 设定中间按钮的圆圈描边颜色 设 ...

  7. 钉钉网页直播回放添加控件(倍速)脚本

    文章所涉及到的技术.脚本代码仅为扩展功能,不涉及侵权.版权问题. 没错,可爱的钉钉已经给网页端加倍速控件了(然而还是不能自定义)![我已经哭晕在厕所] 于是我开始写『音量控件』,优化『倍速控件』. 文 ...

  8. 云炬Android开发笔记 15评价晒单功能实现(自定义评分控件和仿微信自动多图选择控件)

    阅读目录 1. 晒单评价 1.1 点击页面跳转的实现 1.2 自定义评价订单的布局实现 1.3 星星布局的实现 2. 仿微信自动多图及删除控件 2.1 属性值及控件的定义 2.2 图片初始化方法onM ...

  9. C#仿QQ皮肤-常用用户控件EnterFrom1和窗体EntryForm的实现

    导读部分 ----------------------------------------------------------------------------------------------- ...

  10. Android仿饿了么加减控件,Flutter + Native混合栈仿饿了么APP

    前言 一个基于Flutter + Native混合开发的APP,请求数据均人为制造. 目前仅上传Android版本,iOS暂未上传 APK下载 Github地址 效果图: 实现功能: 首页 使用百度定 ...

最新文章

  1. qtablewidget限制输入类型_对敏感型电子信号输入实施过压保护的可靠新方法
  2. MorGain2020中文版
  3. JS性能优化之文档碎片-document.createDocumentFragment
  4. 彻底搞懂阻塞、非阻塞、同步、异步
  5. UVA10739 String to Palindrome【记忆化搜索+DP】
  6. 单片机c语言 arduino,单片机C语言程序设计实训100例——基于Arduino+Proteus仿真
  7. 如何把html文件转化为mp3,如何将Flash转换为MP3
  8. HP M1136无法打印的解决方法
  9. 让微信保持高度活跃的利器
  10. 学习python的感受
  11. WRF users guide Chap5
  12. git rebase操作
  13. 中心商务区建智慧城市 将现 “芝加哥夜景”
  14. oracle与sql语句
  15. postman批量运行和参数化
  16. 用Python批量下载视频
  17. 他山之石 | 知识图谱在美团推荐场景中的应用实践
  18. 2016 YC Demo Day | 44款产品全解析
  19. springboot监听器
  20. 高中计算机期末,浙江 信息技术 高二期末考试题

热门文章

  1. 基于抛物线过渡(梯形加减速)的空间直线插补算法与空间圆弧插补算法(Matlab)
  2. 计组之指令系统:2、指令寻址与数据寻址(直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、隐含寻址、基址寻址、变址寻址、相对寻址、堆栈寻址)
  3. 51单片机间接寻址C语言,51单片机的寻址方式
  4. 交互设计的本质是什么?交互设计哪些意义?
  5. 微信聊天记录的图片在哪查看
  6. mysql事务prepare_mysql之 事务prepare 与 commit 阶段分析
  7. VBA多工作簿中多工作表分类汇总
  8. vue3.0脚手架搭建(vscode)
  9. 阿里云服务器常用配置价格表
  10. mysql数据丢失原因_分析mysql数据丢失的问题