Android仿IOS10圓盤時間選擇器
介紹
這是一款仿IOS10(就寢功能)的圓盤時間選擇器
項目演示
實現(xiàn)思路
以720度為一個周期,0~360°對應(yīng)0~12小時,360°~720°對應(yīng)12~24小時
這里以”開始時間設(shè)置按鈕”為例來談?wù)勊幕瑒訉崿F(xiàn):
將”開始時間設(shè)置按鈕”作為點A,表盤中心作為點O,手指觸摸點作為點P.通過反正切公式可以計算出∠AOP的大小,然后隨著手指的位置不斷變化去更新點A的位置(即點A的角度).
// 坐標(biāo)系的直線表達式 // 直線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為基準(zhǔn)線,順勢針半圓為0-180度,逆時針半圓為0-負(fù)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圓盤時間選擇器
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android自定義DataTimePicker實例代碼(日期選擇器)
- Android中的TimePickerView(時間選擇器)的用法詳解
- Android?studio實現(xiàn)日期?、時間選擇器與進度條
- Android仿iPhone日期時間選擇器詳解
- Android日期和時間選擇器實現(xiàn)代碼
- Android Studio時間選擇器的創(chuàng)建方法
- Android自定義View仿IOS圓盤時間選擇器
- Android開發(fā)中實現(xiàn)IOS風(fēng)格底部選擇器(支持時間 日期 自定義)
- Android時間選擇器、日期選擇器實現(xiàn)代碼
- Android自定義DataTimePicker日期時間選擇器使用詳解
相關(guān)文章
Android使用PullToRefresh完成ListView下拉刷新和左滑刪除功能
ListView下刷新刷功能相信從事Android開發(fā)的猿友們并不陌生,本文就帶領(lǐng)一些剛?cè)腴Tandroid的朋友或者一起愛分享的朋友來簡單的實現(xiàn)ListView的下拉刷新和左滑刪除效果。感興趣的朋友一起看看吧2016-11-11Android自定義View實現(xiàn)游戲搖桿鍵盤的方法示例
Android進階過程中有一個繞不開的話題——自定義View。最近在做項目中又遇到了,所以下面這篇文章主要給大家介紹了利用Android自定義View實現(xiàn)游戲搖桿鍵盤的相關(guān)資料,操作方式類似王者榮耀的搖桿操作,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來一起看看吧。2017-07-07