Android仿IOS10圓盤時(shí)間選擇器
介紹
這是一款仿IOS10(就寢功能)的圓盤時(shí)間選擇器
項(xiàng)目演示

實(shí)現(xiàn)思路
以720度為一個(gè)周期,0~360°對(duì)應(yīng)0~12小時(shí),360°~720°對(duì)應(yīng)12~24小時(shí)

這里以”開始時(shí)間設(shè)置按鈕”為例來談?wù)勊幕瑒?dòng)實(shí)現(xiàn):
將”開始時(shí)間設(shè)置按鈕”作為點(diǎn)A,表盤中心作為點(diǎn)O,手指觸摸點(diǎn)作為點(diǎn)P.通過反正切公式可以計(jì)算出∠AOP的大小,然后隨著手指的位置不斷變化去更新點(diǎn)A的位置(即點(diǎn)A的角度).
// 坐標(biāo)系的直線表達(dá)式
// 直線l1的表達(dá)式子:過鐘表中心點(diǎn)和開始控件中心點(diǎn)
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的表達(dá)式:過鐘表中心點(diǎn)且垂直直線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)線,順勢(shì)針半圓為0-180度,逆時(shí)針半圓為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();
項(xiàng)目地址:Android仿IOS10圓盤時(shí)間選擇器
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android自定義DataTimePicker實(shí)例代碼(日期選擇器)
- Android中的TimePickerView(時(shí)間選擇器)的用法詳解
- Android?studio實(shí)現(xiàn)日期?、時(shí)間選擇器與進(jìn)度條
- Android仿iPhone日期時(shí)間選擇器詳解
- Android日期和時(shí)間選擇器實(shí)現(xiàn)代碼
- Android Studio時(shí)間選擇器的創(chuàng)建方法
- Android自定義View仿IOS圓盤時(shí)間選擇器
- Android開發(fā)中實(shí)現(xiàn)IOS風(fēng)格底部選擇器(支持時(shí)間 日期 自定義)
- Android時(shí)間選擇器、日期選擇器實(shí)現(xiàn)代碼
- Android自定義DataTimePicker日期時(shí)間選擇器使用詳解
相關(guān)文章
Android應(yīng)用開發(fā)中RecyclerView組件使用入門教程
這篇文章主要介紹了Android應(yīng)用開發(fā)中RecyclerView組件使用的入門教程,RecyclerView主要針對(duì)安卓5.0以上的material design開發(fā)提供支持,需要的朋友可以參考下2016-02-02
基于Android RecyclerView實(shí)現(xiàn)宮格拖拽效果
在Android發(fā)展的進(jìn)程中,網(wǎng)格布局一直比較有熱度,其中一個(gè)原因是對(duì)用戶來說便捷操作,對(duì)app廠商而言也會(huì)帶來很多的曝光量,本篇我們會(huì)使用RecyclerView來實(shí)現(xiàn)網(wǎng)格拖拽,本篇將結(jié)合圖片分片案例,實(shí)現(xiàn)拖拽效果,需要的朋友可以參考下2024-03-03
Android SeekBar實(shí)現(xiàn)禁止滑動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android SeekBar實(shí)現(xiàn)禁止滑動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
Android實(shí)現(xiàn)模仿UCweb菜單效果的方法
這篇文章主要介紹了Android實(shí)現(xiàn)模仿UCweb菜單效果的方法,較為詳細(xì)的分析了Android模仿UCweb菜單效果的頁(yè)面布局及功能實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
android surfaceView實(shí)現(xiàn)播放視頻功能
這篇文章主要為大家詳細(xì)介紹了android surfaceView實(shí)現(xiàn)播放視頻功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
ScrollView嵌套ListView滑動(dòng)沖突的解決方法
這篇文章主要介紹了ScrollView嵌套ListView滑動(dòng)沖突的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
在kotlin的安卓項(xiàng)目中使用dagger的操作方法

