1、前言#
ArgbEvaluator,真特么是一個相見恨晚的類。因為它可以實現很多有趣的色彩效果,提高體驗度。
簡單介紹下:
ArgbEvaluator:一個在倆種色彩通,通過偏移量計算出另一個色彩的類。
按小渣渣我的理解就是,傳倆個顏色參數,和一個 0~1直接的小數。得到這倆個顏色中間的 顏色.如果是‘0’就是第一個顏色,如果是‘1’就是第二個顏色。
這特么有卵用……
別急。。哥。。別急。。哎哎別打我,我怕了你了。。咱上效果圖還不成!
效果圖###
效果一:滑動viewpager時,背景色漸變。
這個效果主要是看到了《片刻》的引導頁面于是感興趣研究了下這個效果~~
當時學習的一個博客:感謝這位大大~~~
然后,我就腦洞一開想了點別的效果~感覺特么的ArgbEvaluator
真特么好用!
效果二:隨著
EditText
輸入框的長度變化背景色~
其實,也不一定得是背景色。我就舉個例子嘛~~有更好的想法可以分享下一起研究哈
- 效果三:隨著一天的時間變化改變背景色。
咳咳……把你手上的西瓜刀放下,咱好好說話!那個,這個效果的話是根據一天中的時間來改變 背景顏色的。而我所做 的處理是 一小時之類的變化,也就是說如果要看到效果我特么至少得錄幾十分鐘的屏……那個,如果真要我錄得話,你還是撿起剛放下的刀往我腦袋上剁吧……
* 效果的話我就展示這三個啦~ 如果有什么有意思的想法,歡迎評論、留言~一起學習嘛。
思路分析
關于這幾個效果的實現。主要就是運用了
ArgbEvaluator
的evaluate()
方法.
argbEvaluator.evaluate(fraction,startValue,endValue);
關于這個方法上面我也提過了,這里就不扯犢子了。之所以會想到上面的幾種效果,無非是因為他的第一個參數,也就是那個偏移量。
Viewpager的滑動監聽可以得到滑動的距離,EditText可以監聽輸入得到長度,時間……時間也是個數值,當我們將它們的值全部轉化為這個方法的第一個參數 偏移量
,然后就能在不同時刻賦予不同的背景顏色啦~嗯哼,不光背景顏色其他顏色也行的……
這只是三個例子,我們還能實現根據進度條的進度變化某些顏色,或者其它什么什么數據來改變又或者自定義View?總之特么的看腦洞了吧。
又到了激動人心的代碼時刻了~
代碼
開始倒計時…
1...
2.....
3......
4........
5..........
6.............會不會很激動?
7.................你猜幾行搞定?!
8........................
哎我不說我不說我不說
哎呦臥槽!哥,你別動不動拿刀子呀!……###
我說…我說…我說還不行么。請看第二篇文章:
《[android]so easy實現根據viewpager、edittext、時間使背景動態漸變色效果~》
喜歡的朋友可以點個關注~