国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android仿IOS10圓盤時間選擇器

2019-10-21 21:45:27
字體:
來源:轉載
供稿:網友

介紹

這是一款仿IOS10(就寢功能)的圓盤時間選擇器

項目演示

Android,IOS10,圓盤,時間選擇器

實現思路

以720度為一個周期,0~360°對應0~12小時,360°~720°對應12~24小時 

Android,IOS10,圓盤,時間選擇器

這里以”開始時間設置按鈕”為例來談談它的滑動實現: 
將”開始時間設置按鈕”作為點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圓盤時間選擇器

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄浦区| 昌乐县| 墨玉县| 漯河市| 融水| 玛纳斯县| 城口县| 仙游县| 井陉县| 施秉县| 金堂县| 沂源县| 类乌齐县| 宿松县| 宿州市| 台州市| 天台县| 贵州省| 新野县| 鸡泽县| 重庆市| 海盐县| 江川县| 龙泉市| 远安县| 积石山| 东兴市| SHOW| 潞城市| 慈利县| 正安县| 陇南市| 安龙县| 房山区| 苍南县| 仙游县| 枝江市| 洛阳市| 开阳县| 嘉兴市| 林西县|