可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView

jopen 11年前發布 | 33K 次閱讀 Android開發 移動開發 DraggableFlagView

可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果),拖拽一定的距離可以消失回調。

可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView 可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView

可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView 可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView

可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView 可拖拽的紅點,(仿新版QQ,tab下面拖拽標記為已讀的效果):DraggableFlagView

實現原理:

當根據touch事件的移動,不斷調用onDraw()方法進行刷新繪制。

*注意:這里原來的小紅點稱為紅點A;根據手指移動繪制的小紅點稱為紅點B。

touch事件移動的時候需要處理的邏輯:

1. 紅點A的半徑根據滑動的距離會不斷地變小。

2. 紅點B會緊隨手指的位置移動。

3. 在紅點A和紅點B之間需要用貝塞爾曲線繪制連接區域。

4. 如果紅點A和紅點B之間的間距達到了設置的最大的距離,則表示,這次的拖拽會有效,一旦放手紅點就會消失。

5. 如果達到了第4中情況,則紅點A和中間連接的貝塞爾曲線不會被繪制。

6. 如果紅點A和紅點B之間的距離沒有達到設置的最大的距離,則放手后,紅點B消失,紅點A從原來變小的半徑使用反彈動畫變換到原來最初的狀態

項目主頁:http://www.baiduhome.net/lib/view/home/1419473662593

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!