Android之Color 顏色過度計(jì)算

在MIUI上看到很多顏色漸變動畫,感覺很炫,用ObjectAnimator試了一下能實(shí)現(xiàn)初步效果,一下是源代碼

使用ObjectAnimator實(shí)現(xiàn)顏色漸變動畫

        ObjectAnimator  animator = ObjectAnimator.ofObject(testLayout, "backgroundColor",new ArgbEvaluator(),0xff40c7b6,0xffff7a59);
        animator.setDuration(1000);
        animator.setInterpolator(new AccelerateDecelerateInterpolator());
        animator.start();

看起來很容易,但是我留意到進(jìn)度條變化的時候背景顏色跟著一起變化,用這個方法只能能實(shí)現(xiàn)從某個顏色變化到某個顏色并不能在中間停頓保留,我上網(wǎng)搜索了下,很多大佬使用的是自定義TypeEvaluator來計(jì)算屬性動畫的屬性值,但是想實(shí)現(xiàn)停留在中的顏色還是停留不了,于是我拿DALAO的代碼進(jìn)行了一部分抽離

public void startValueAnimator(int progress,int mProgress){
        if(animator != null && animator.isRunning()){
            animator.cancel();
            animator = null;
        }
        int duration = 15 * Math.abs(progress - mProgress);
        animator = ObjectAnimator.ofObject(testLayout, "backgroundColor",new ArgbEvaluator(),getCurrentColor(mProgress/100f,0xff40c7b6,0xffff7a59),getCurrentColor(progress/100f,0xff40c7b6,0xffff7a59));
        animator.setDuration(duration);
        animator.setInterpolator(new AccelerateDecelerateInterpolator());
        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                Log.d("MainActivity", "animation.getAnimatedValue():" + animation.getAnimatedValue());
            }
        });
        animator.start();
    }
/**
     * 根據(jù)fraction值來計(jì)算當(dāng)前的顏色虑润。 fraction值范圍  0f-1f
     */
    private int getCurrentColor(float fraction, int startColor, int endColor) {
        int redCurrent;
        int blueCurrent;
        int greenCurrent;
        int alphaCurrent;

        int redStart = Color.red(startColor);
        int blueStart = Color.blue(startColor);
        int greenStart = Color.green(startColor);
        int alphaStart = Color.alpha(startColor);

        int redEnd = Color.red(endColor);
        int blueEnd = Color.blue(endColor);
        int greenEnd = Color.green(endColor);
        int alphaEnd = Color.alpha(endColor);

        int redDifference = redEnd - redStart;
        int blueDifference = blueEnd - blueStart;
        int greenDifference = greenEnd - greenStart;
        int alphaDifference = alphaEnd - alphaStart;

        redCurrent = (int) (redStart + fraction * redDifference);
        blueCurrent = (int) (blueStart + fraction * blueDifference);
        greenCurrent = (int) (greenStart + fraction * greenDifference);
        alphaCurrent = (int) (alphaStart + fraction * alphaDifference);

        return Color.argb(alphaCurrent, redCurrent, greenCurrent, blueCurrent);
    }

ok完事 保留 后期使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末请祖,一起剝皮案震驚了整個濱河市兔沃,隨后出現(xiàn)的幾起案子狡逢,更是在濱河造成了極大的恐慌,老刑警劉巖棚亩,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憔晒,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔑舞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門嘹屯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攻询,“玉大人,你說我怎么就攤上這事州弟【埽” “怎么了低零?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拯杠。 經(jīng)常有香客問我掏婶,道長,這世上最難降的妖魔是什么潭陪? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任雄妥,我火速辦了婚禮,結(jié)果婚禮上依溯,老公的妹妹穿的比我還像新娘老厌。我一直安慰自己,他們只是感情好黎炉,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布枝秤。 她就那樣靜靜地躺著,像睡著了一般慷嗜。 火紅的嫁衣襯著肌膚如雪淀弹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天庆械,我揣著相機(jī)與錄音薇溃,去河邊找鬼。 笑死干奢,一個胖子當(dāng)著我的面吹牛痊焊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忿峻,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼薄啥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了逛尚?” 一聲冷哼從身側(cè)響起垄惧,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绰寞,沒想到半個月后到逊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滤钱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年觉壶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片件缸。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡铜靶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出他炊,到底是詐尸還是另有隱情争剿,我是刑警寧澤已艰,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蚕苇,受9級特大地震影響哩掺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涩笤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一嚼吞、第九天 我趴在偏房一處隱蔽的房頂上張望绒净。 院中可真熱鬧管钳,春花似錦、人聲如沸港庄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至飒筑,卻和暖如春片吊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背协屡。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工俏脊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肤晓。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓爷贫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親补憾。 傳聞我的和親對象是個殘疾皇子漫萄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容