Android怎么实现仿IOS10圆盘时间选择器
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要讲解了"Android怎么实现仿IOS10圆盘时间选择器",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么实现仿IOS10圆
千家信息网最后更新 2024年11月28日Android怎么实现仿IOS10圆盘时间选择器
这篇文章主要讲解了"Android怎么实现仿IOS10圆盘时间选择器",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android怎么实现仿IOS10圆盘时间选择器"吧!
项目演示
实现思路
以720度为一个周期,0~360°对应0~12小时,360°~720°对应12~24小时
这里以"开始时间设置按钮"为例来谈谈它的滑动实现:
将"开始时间设置按钮"作为点A,表盘中心作为点O,手指触摸点作为点P.通过反正切公式可以计算出∠AOP的大小,然后随着手指的位置不断变化去更新点A的位置(即点A的角度).
// 坐标系的直线表达式// 直线l1的表达式子:过钟表中心点和开始控件中心点float a1 = mCenterY - mStartBtnCurY;float b1 = mStartBtnCurX - mCenterX;float c1 = mStartBtnCurY * mCenterX - mCenterY * mStartBtnCurX;double d1 = (a1 * eventX + b1 * eventY + c1) / (Math.sqrt(a1 * a1 + b1 * b1));// 直线l2的表达式:过钟表中心点且垂直直线l1 float a2 = b1; float b2 = -a1; float c2 = -a2 * mCenterX - b2 * mCenterY; double d2 = (a2 * eventX + b2 * eventY + c2) / (Math.sqrt(a2 * a2 + b2 * b2));// 以l1为基准线,顺势针半圆为0-180度,逆时针半圆为0-负180度 double moveDegree = Math.toDegrees(Math.atan2(d1, d2)); mStartDegree = (float) (mStartDegree + Math.floor(moveDegree)); mStartDegree = (mStartDegree < 0) ? mStartDegree + mDegreeCycle : mStartDegree % mDegreeCycle; refreshStartBtnPositon(); invalidate();
感谢各位的阅读,以上就是"Android怎么实现仿IOS10圆盘时间选择器"的内容了,经过本文的学习后,相信大家对Android怎么实现仿IOS10圆盘时间选择器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
时间
圆盘
选择
直线
中心点
学习
位置
内容
半圆
小时
思路
手指
按钮
表达式
钟表
不断
公式
周期
坐标
坐标系
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
读软件开发那个大学好
数据库中怎么使用外键
qq服务器连接中断
网络安全对我国的影响有哪些
个人服务器diy
黑色幽默吉他谱软件开发
网络安全黑客撞库
软件开发设计文档数据库
张店物流竞价软件开发定制
老服务器可以安装esxi7吗
如何安装教师提供的数据库
aidr安卓软件开发
贵州信息化土地资产管理软件开发
软件开发哪些地方工作好
串口服务器和安全服务器
服装系统软件开发公司
腾讯云服务器学生网官网
黎涛网络技术工程室
互联网软件开发简答题
苏州 软件开发
计算机数据库基础试题 问卷星
网络安全和软件开发贴吧
苏州渊然互联网科技
郑州软件开发薪资水平
新东方院校数据库
重庆软件开发水平怎么样
为什么用erp软件开发
app的后台数据库在哪
重庆游戏软件开发公司排名
网络安全岗位警察