Java 类android.animation.ArgbEvaluator 实例源码

项目:GitHub    文件:GalleryActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gallery);

    evaluator = new ArgbEvaluator();
    currentOverlayColor = ContextCompat.getColor(this, R.color.galleryCurrentItemOverlay);
    overlayColor = ContextCompat.getColor(this, R.color.galleryItemOverlay);

    Gallery gallery = Gallery.get();
    List<Image> data = gallery.getData();
    DiscreteScrollView itemPicker = (DiscreteScrollView) findViewById(R.id.item_picker);
    itemPicker.setAdapter(new GalleryAdapter(data));
    itemPicker.addScrollListener(this);
    itemPicker.addOnItemChangedListener(this);
    itemPicker.scrollToPosition(1);

    findViewById(R.id.home).setOnClickListener(this);
    findViewById(R.id.fab_share).setOnClickListener(this);
}
项目:GitHub    文件:MaterialViewPagerAnimator.java   
/**
 * Change the color of the statusbackground, toolbar, toolbarlayout and pagertitlestrip
 * With a color transition animation
 *
 * @param color    the final color
 * @param duration the transition color animation duration
 */
void setColor(int color, int duration) {
    final ValueAnimator colorAnim = ObjectAnimator.ofInt(mHeader.headerBackground, "backgroundColor", settings.color, color);
    colorAnim.setEvaluator(new ArgbEvaluator());
    colorAnim.setDuration(duration);
    colorAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            final int animatedValue = (Integer) animation.getAnimatedValue();
            int colorAlpha = colorWithAlpha(animatedValue, lastPercent);
            mHeader.headerBackground.setBackgroundColor(colorAlpha);
            mHeader.statusBackground.setBackgroundColor(colorAlpha);
            mHeader.toolbar.setBackgroundColor(colorAlpha);
            mHeader.toolbarLayoutBackground.setBackgroundColor(colorAlpha);
            mHeader.mPagerSlidingTabStrip.setBackgroundColor(colorAlpha);

            //set the new color as MaterialViewPager's color
            settings.color = animatedValue;
        }
    });
    colorAnim.start();
}
项目:empty-state-recyclerview    文件:DefaultLoadingState.java   
@Override
public void onDrawState(final EmptyStateRecyclerView rv, Canvas canvas) {
    canvas.drawText(title,
            (rv.getMeasuredWidth() >> 1),
            (rv.getMeasuredHeight() >> 1),
            textPaint);

    // Setup animator, if necessary
    if (anim == null) {
        this.anim = ObjectAnimator.ofObject(textPaint, "color", new ArgbEvaluator(),
                Color.parseColor("#E0E0E0"), Color.parseColor("#BDBDBD"), Color.parseColor("#9E9E9E"));
        this.anim.setDuration(900);
        this.anim.setRepeatMode(ValueAnimator.REVERSE);
        this.anim.setRepeatCount(ValueAnimator.INFINITE);
        this.anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                rv.invalidate();
            }
        });
        this.anim.start();
    }
}
项目:empty-state-recyclerview    文件:ContentItemLoadingStateFactory.java   
@Override
public final void onDrawState(final EmptyStateRecyclerView rv, Canvas canvas) {
    final int width = rv.getMeasuredWidth();
    final int height = rv.getMeasuredHeight();

    // Draw all of our content items
    renderContent(numberOfContentItems, width, height, canvas, contentPaint);

    // Setup and start animation, if possible
    if (animateContentItems) {
        if (anim == null) {
            this.anim = ObjectAnimator.ofObject(contentPaint, "color", new ArgbEvaluator(),
                    Color.parseColor("#E0E0E0"), Color.parseColor("#BDBDBD"), Color.parseColor("#9E9E9E"));
            onInterceptAnimatorCreation(anim);
            this.anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    rv.invalidate();
                }
            });
            this.anim.start();
        }
    }
}
项目:empty-state-recyclerview    文件:AbstractContentLoadingState.java   
@Override
public final void onDrawState(final EmptyStateRecyclerView rv, Canvas canvas) {
    final int width = rv.getMeasuredWidth();
    final int height = rv.getMeasuredHeight();

    // Draw all of our content items
    renderContent(numberOfContentItems, width, height, canvas, contentPaint);

    // Setup and start animation, if possible
    if (animateContentItems) {
        if (anim == null) {
            this.anim = ObjectAnimator.ofObject(contentPaint, "color", new ArgbEvaluator(),
                    Color.parseColor("#E0E0E0"), Color.parseColor("#BDBDBD"), Color.parseColor("#9E9E9E"));
            onInterceptAnimatorCreation(anim);
            this.anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    rv.invalidate();
                }
            });
            this.anim.start();
        }
    }
}
项目:pipe    文件:LaunchActivity.java   
/**
 * 给背景设置一个动画
 *
 * @param endProgress 动画的结束进度
 * @param endCallback 动画结束时触发
 */
private void startAnim(float endProgress, final Runnable endCallback) {
    // 获取一个最终的颜色
    int finalColor = Resource.Color.WHITE; // UiCompat.getColor(getResources(), R.color.white);
    // 运算当前进度的颜色
    ArgbEvaluator evaluator = new ArgbEvaluator();
    int endColor = (int) evaluator.evaluate(endProgress, mBgDrawable.getColor(), finalColor);
    // 构建一个属性动画
    ValueAnimator valueAnimator = ObjectAnimator.ofObject(this, property, evaluator, endColor);
    valueAnimator.setDuration(1500); // 时间
    valueAnimator.setIntValues(mBgDrawable.getColor(), endColor); // 开始结束值
    valueAnimator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            // 结束时触发
            endCallback.run();
        }
    });
    valueAnimator.start();
}
项目:TripleTap    文件:SetGameCardView.java   
/**
 * Change card color. This method wraps the Property Animation API mentioned here
 * https://stackoverflow.com/a/14467625/7009268
 */
public void animateColorChange(int colorFromId, int colorToId) {
    int colorFrom = ContextCompat.getColor(getContext(), colorFromId);
    int colorTo = ContextCompat.getColor(getContext(), colorToId);
    final SetGameCardView card = this;

    int duration = getContext().getResources().getInteger(R.integer.card_animation_duration);

    ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
    colorAnimation.setDuration(duration); // milliseconds
    colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animator) {
            card.setCardBackgroundColor((int) animator.getAnimatedValue());
        }
    });
    colorAnimation.start();
}
项目:CFAlertDialog    文件:CFAlertDialog.java   
public void setBackgroundColor(int color, boolean animated){

        if (animated) {
            int colorFrom = ((ColorDrawable)cfDialogBackground.getBackground()).getColor();
            int colorTo = color;
            ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
            colorAnimation.setDuration(getContext().getResources().getInteger(R.integer.cfdialog_animation_duration)); // milliseconds
            colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

                @Override
                public void onAnimationUpdate(ValueAnimator animator) {
                    cfDialogBackground.setBackgroundColor((int) animator.getAnimatedValue());
                }

            });
            colorAnimation.start();
        }
        else {
            cfDialogBackground.setBackgroundColor(color);
        }
    }
项目:CFAlertDialog    文件:CFAlertDialog.java   
public void setDialogBackgroundColor(int color, boolean animated) {
    if (animated) {
        int colorFrom = ((ColorDrawable)dialogCardView.getBackground()).getColor();
        int colorTo = color;
        ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
        colorAnimation.setDuration(getContext().getResources().getInteger(R.integer.cfdialog_animation_duration)); // milliseconds
        colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

            @Override
            public void onAnimationUpdate(ValueAnimator animator) {
                dialogCardView.setBackgroundColor((int) animator.getAnimatedValue());
            }

        });
        colorAnimation.start();
    }
    else {
        dialogCardView.setBackgroundColor(color);
    }
}
项目:utils-android    文件:AnimUtils.java   
public static void recolorBackground(final View view,
                                     final int startColor,
                                     final int endColor,
                                     final int duration) {
    ValueAnimator anim = new ValueAnimator();
    anim.setIntValues(startColor, endColor);
    anim.setEvaluator(new ArgbEvaluator());
    anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            view.setBackgroundColor((Integer) animation.getAnimatedValue());
        }
    });
    anim.setDuration(duration);
    anim.start();
}
项目:DailyStudy    文件:ScanImageviewActivity.java   
private void changeBackGroundColor() {
    int colorTo;
    int colorFrom;
    if (fullScreenMode) {
        colorFrom = getResources().getColor(R.color.bg);
        colorTo = (ContextCompat.getColor(this, R.color.bg1));
    } else {
        colorFrom = (ContextCompat.getColor(this, R.color.bg1));
        colorTo = getResources().getColor(R.color.bg);
    }
    ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
    colorAnimation.setDuration(240);
    colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animator) {
            ActivityBackground.setBackgroundColor((Integer) animator.getAnimatedValue());
        }
    });
    colorAnimation.start();
}
项目:Android-Programming-BigNerd    文件:SunsetFragment.java   
private void sunsetAnimator() {
    float sunYStart = mSunView.getTop();
    float sunYEnd = mSkyView.getHeight();

    ObjectAnimator heightAnimator = ObjectAnimator.ofFloat(mSunView, "y", sunYStart, sunYEnd)
            .setDuration(3000);

    ObjectAnimator sunsetSkyAnimator = ObjectAnimator.ofInt(mSkyView, "backgroundColor",
            mBlueSkyColor, mSunsetSkyColor)
            .setDuration(3000);
    ObjectAnimator nightSkyAnimator = ObjectAnimator.ofInt(mSkyView, "backgroundColor",
            mSunsetSkyColor, mNightSkyColor)
            .setDuration(1500);

    heightAnimator.setInterpolator(new AccelerateInterpolator());
    sunsetSkyAnimator.setEvaluator(new ArgbEvaluator());
    nightSkyAnimator.setEvaluator(new ArgbEvaluator());

    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.play(heightAnimator).with(sunsetSkyAnimator).before(nightSkyAnimator);
    animatorSet.start();
}
项目:Android-Programming-BigNerd    文件:SunsetFragment.java   
private void sunriseAnimator() {
    float sunriseYStart = mSkyView.getHeight();
    float sunriseYEnd = mSunView.getTop();

    ObjectAnimator heightAnimator = ObjectAnimator.ofFloat(mSunView, "y",
            sunriseYStart, sunriseYEnd)
            .setDuration(3000);
    ObjectAnimator sunriseSkyAnimator = ObjectAnimator.ofInt(mSkyView, "backgroundColor",
            mSunsetSkyColor, mBlueSkyColor)
            .setDuration(3000);
    ObjectAnimator daySkyAnimator = ObjectAnimator.ofInt(mSkyView, "backgroundColor",
            mNightSkyColor, mSunsetSkyColor)
            .setDuration(3000);

    heightAnimator.setInterpolator(new AccelerateInterpolator());
    sunriseSkyAnimator.setEvaluator(new ArgbEvaluator());
    daySkyAnimator.setEvaluator(new ArgbEvaluator());

    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.play(daySkyAnimator).before(sunriseSkyAnimator).before(heightAnimator)
            ;
    animatorSet.start();
}
项目:RLibrary    文件:SimpleProgressBar.java   
private void startIncertitudeAnimator() {
    if (mColorAnimator == null) {
        mColorAnimator = ValueAnimator.ofObject(new ArgbEvaluator(), mProgressColor, SkinHelper.getTranColor(mProgressColor, 0x10));
        mColorAnimator.setInterpolator(new LinearInterpolator());
        mColorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                drawColor = (int) animation.getAnimatedValue();//之后就可以得到动画的颜色了.
                postInvalidate();
            }
        });
        mColorAnimator.setDuration(1000);
        mColorAnimator.setRepeatCount(ValueAnimator.INFINITE);
        mColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
    }
    mColorAnimator.start();
}
项目:ViewPagerZoomTransformer    文件:WatchDetailActivity.java   
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    this.position = position;
    ArgbEvaluator evaluator = new ArgbEvaluator(); // ARGB求值器
    int evaluate = colors[0]; // 初始默认颜色(透明白)
    int startColor =  colors[this.position <= 0 ? 0 : position];
    int endColor;
    if (position == 0){
        endColor = colors[position +1];
    }else {
        endColor = colors[position +1 >=colors.length ? colors.length -1 : position +1];
    }

    evaluate = (Integer) evaluator.evaluate(positionOffset, startColor, endColor); // 根据positionOffset和第0页~第1页的颜色转换范围取颜色值
    mViewRoot.setBackgroundColor(evaluate);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().setStatusBarColor(evaluate);
    }

}
项目:AnimatedGradientTextView    文件:GradientRunnable.java   
@Override
public void run() {
    long currentTime = SystemClock.uptimeMillis();
    long delta = currentTime - lastTime;

    totalDelta += delta;
    float totalPercentage = totalDelta / ((float) speed);
    totalPercentage = totalPercentage > 1 ? 1 : totalPercentage;

    for (int colorIndex = 0; colorIndex < currentColors.length; colorIndex++) {
        currentColors[colorIndex] = (int) (new ArgbEvaluator().evaluate(totalPercentage, colors[(currentGradient + colorIndex) % colors.length], colors[(currentGradient + (colorIndex + 1)) % colors.length]));
    }

    if (totalPercentage == 1) {
        totalDelta = 0;
        currentGradient = (currentGradient + 1) % colors.length;
    }

    Shader shader = new LinearGradient(gradientsPositions[0].x, gradientsPositions[0].y, gradientsPositions[1].x, gradientsPositions[1].y, currentColors, null, Shader.TileMode.CLAMP);
    textView.getPaint().setShader(shader);

    textView.postInvalidate();
    lastTime = currentTime;
}
项目:narrate-android    文件:PaletteLoader.java   
private static void applyColorToView(final TextView textView, int color, boolean fromCache) {
    if (fromCache) {
        textView.setTextColor(color);
    } else {
        Integer colorFrom = textView.getCurrentTextColor();
        Integer colorTo = color;
        ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
        colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animator) {
                textView.setTextColor((Integer) animator.getAnimatedValue());
            }
        });
        colorAnimation.start();
    }
}
项目:solved-hacking-problem    文件:C0002b.java   
private void m4a(Animator animator) {
    if (animator instanceof AnimatorSet) {
        List childAnimations = ((AnimatorSet) animator).getChildAnimations();
        if (childAnimations != null) {
            for (int i = 0; i < childAnimations.size(); i++) {
                m4a((Animator) childAnimations.get(i));
            }
        }
    }
    if (animator instanceof ObjectAnimator) {
        ObjectAnimator objectAnimator = (ObjectAnimator) animator;
        String propertyName = objectAnimator.getPropertyName();
        if ("fillColor".equals(propertyName) || "strokeColor".equals(propertyName)) {
            if (this.f9d == null) {
                this.f9d = new ArgbEvaluator();
            }
            objectAnimator.setEvaluator(this.f9d);
        }
    }
}
项目:solved-hacking-problem    文件:C0002b.java   
private void m4a(Animator animator) {
    if (animator instanceof AnimatorSet) {
        List childAnimations = ((AnimatorSet) animator).getChildAnimations();
        if (childAnimations != null) {
            for (int i = 0; i < childAnimations.size(); i++) {
                m4a((Animator) childAnimations.get(i));
            }
        }
    }
    if (animator instanceof ObjectAnimator) {
        ObjectAnimator objectAnimator = (ObjectAnimator) animator;
        String propertyName = objectAnimator.getPropertyName();
        if ("fillColor".equals(propertyName) || "strokeColor".equals(propertyName)) {
            if (this.f9d == null) {
                this.f9d = new ArgbEvaluator();
            }
            objectAnimator.setEvaluator(this.f9d);
        }
    }
}
项目:pandroid    文件:ProgressButtonLayout.java   
public void load(boolean anim) {
    if (contentView == null)
        return;
    int duration = anim ? getResources().getInteger(R.integer.anim_speed) : 1;
    progressWheel.setVisibility(VISIBLE);
    if (contentView.getMeasuredHeight() == 0) {
        AnimUtils.mesureView(contentView);
    }
    int buttonHeight = contentView.getMeasuredHeight() - contentView.getPaddingTop() - contentView.getPaddingBottom();
    progressWheel.setCircleRadius(buttonHeight / 2);
    progressWheel.animate().setDuration(duration).alpha(1);
    progressWheel.spin();
    if (contentView instanceof TextView) {
        int color = ((TextView) contentView).getTextColors().getDefaultColor();
        ValueAnimator textColorAnimator = ValueAnimator.ofObject(new ArgbEvaluator(), color, Color.argb(0, Color.red(color), Color.green(color), Color.blue(color)));
        textColorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animator) {
                ((TextView) contentView).setTextColor((Integer) animator.getAnimatedValue());
            }
        });
        textColorAnimator.setDuration(duration);
        textColorAnimator.start();
    }
    animateToRadius(buttonHeight / 2, duration, new SimpleAnimatorListener());
}
项目:Codementor    文件:ChatroomItemViewHolder.java   
private void onPresenceType(PresenceType presenceType) {
    if (currentChatroom != null) {
        currentChatroom.getOtherUser().setPresenceType(presenceType);
    }

    if (presenceAnimator != null) {
        presenceAnimator.cancel();
    }

    Integer colorFrom = presenceColour;
    Integer colorTo = presenceType.getColor(context);

    presenceAnimator = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
    presenceAnimator.addUpdateListener(this::onPresenceColor);
    presenceAnimator.setDuration(250);
    presenceAnimator.start();
}
项目:Android-ExpandIcon    文件:ExpandIconView.java   
private void updateColor(@NonNull ArgbEvaluator colorEvaluator) {
    float fraction;
    int colorFrom;
    int colorTo;
    if (colorIntermediate != -1) {
        colorFrom = alpha <= 0f ? colorMore : colorIntermediate;
        colorTo = alpha <= 0f ? colorIntermediate : colorLess;
        fraction = alpha <= 0 ? (1 + alpha / 45f) : alpha / 45f;
    } else {
        colorFrom = colorMore;
        colorTo = colorLess;
        fraction = (alpha + 45f) / 90f;
    }
    color = (int) colorEvaluator.evaluate(fraction, colorFrom, colorTo);
    paint.setColor(color);
}
项目:ViewPagerZoomTransformer    文件:WatchDetailActivity.java   
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    this.position = position;
    ArgbEvaluator evaluator = new ArgbEvaluator(); // ARGB求值器
    int evaluate = colors[0]; // 初始默认颜色(透明白)
    int startColor =  colors[this.position <= 0 ? 0 : position];
    int endColor;
    if (position == 0){
        endColor = colors[position +1];
    }else {
        endColor = colors[position +1 >=colors.length ? colors.length -1 : position +1];
    }

    evaluate = (Integer) evaluator.evaluate(positionOffset, startColor, endColor); // 根据positionOffset和第0页~第1页的颜色转换范围取颜色值
    mViewRoot.setBackgroundColor(evaluate);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().setStatusBarColor(evaluate);
    }

}
项目:IOSSwitch    文件:IOSSwitch.java   
private void on(AnimatorSet animatorSet) {
    // 按钮移动

    ObjectAnimator ballTransAnim1 = ofFloat(IOSSwitch.this, "mBallStartX", width - frameStrokeWidth - height
                                                                           + frameStrokeWidth + ballStrokeWidth);
    ballTransAnim1.setDuration(250);
    ballTransAnim1.setInterpolator(new DecelerateInterpolator());

    ObjectAnimator ballTransAnim2 = ofFloat(IOSSwitch.this, "mBallStartX", width - frameStrokeWidth - height);
    ballTransAnim2.setDuration(80);
    ballTransAnim2.setInterpolator(new DecelerateInterpolator());
    animatorSet.playSequentially(ballTransAnim1, ballTransAnim2);
    animatorSet.start();

    // 背景改变
    ObjectAnimator bgColorAnim = ObjectAnimator.ofInt(this, "frameColor", frameColor, bgColor);
    bgColorAnim.setEvaluator(new ArgbEvaluator());
    bgColorAnim.setDuration(200);
    bgColorAnim.start();
}
项目:IOSSwitch    文件:IOSSwitch.java   
private void off(AnimatorSet animatorSet) {
    // 按钮移动

    ObjectAnimator ballTransAnim1 = ofFloat(IOSSwitch.this, "mBallStartX", -frameStrokeWidth - ballStrokeWidth);
    ballTransAnim1.setDuration(250);

    ballTransAnim1.setInterpolator(new DecelerateInterpolator());

    ObjectAnimator ballTransAnim2 = ofFloat(IOSSwitch.this, "mBallStartX", 0);
    ballTransAnim2.setDuration(80);
    ballTransAnim2.setInterpolator(new DecelerateInterpolator());

    animatorSet.playSequentially(ballTransAnim1, ballTransAnim2);
    animatorSet.start();
    // 背景恢复
    ObjectAnimator bgColorAnim = ObjectAnimator.ofInt(this, "frameColor", frameColor, Colors.IOS_GRAY);
    bgColorAnim.setEvaluator(new ArgbEvaluator());
    bgColorAnim.setDuration(200);
    bgColorAnim.start();
    // 背景遮罩恢复
    ObjectAnimator backgroundScaleAnim = ofFloat(IOSSwitch.this, "mBackgroundStrokeWidth", frameStrokeWidth);
    backgroundScaleAnim.setDuration(300);
    backgroundScaleAnim.setInterpolator(new DecelerateInterpolator());
    backgroundScaleAnim.start();
}
项目:MVPFrames    文件:Helper.java   
/**
 * Update image view color with animation
 */
public static void updateDrawableColor(final Context context, final Drawable drawable,
                                          final ImageView imageView, @ColorInt int fromColor,
                                          @ColorInt int toColor, final boolean forceTint) {
    ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), fromColor, toColor);
    colorAnimation.setDuration(150);
    colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animator) {
            imageView.setImageDrawable(Helper.getTintDrawable(drawable,
                    (Integer) animator.getAnimatedValue(), forceTint));
            imageView.requestLayout();
        }
    });
    colorAnimation.start();
}
项目:APKMirror    文件:MainActivity.java   
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void changeUIColor(Integer color) {

    ValueAnimator anim = ValueAnimator.ofArgb(previsionThemeColor, color);
    anim.setEvaluator(new ArgbEvaluator());

    anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            progressBar.getProgressDrawable().setColorFilter(new LightingColorFilter(0xFF000000, (Integer) valueAnimator.getAnimatedValue()));
            setSystemBarColor((Integer) valueAnimator.getAnimatedValue());
            navigation.setActiveTabColor((Integer) valueAnimator.getAnimatedValue());
            fabSearch.setBackgroundTintList(ColorStateList.valueOf((Integer) valueAnimator.getAnimatedValue()));

        }
    });

    anim.setDuration(getResources().getInteger(android.R.integer.config_shortAnimTime));
    anim.start();
    refreshLayout.setColorSchemeColors(color, color, color);

}
项目:ColorTap    文件:AnimateView.java   
public void blink()
{

    ObjectAnimator animate= ObjectAnimator.ofObject(failedStripe,"backgroundColor",new ArgbEvaluator(), Color.RED,failedStripe.stripeColor);
    animate.setInterpolator(new LinearInterpolator());
    animate.setRepeatMode(ValueAnimator.RESTART);
    animate.setRepeatCount(4);
    animate.setDuration(300);
    animate.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            p.setColor(failedStripe.stripeColor);
            startAnimation();
            game.gameOverScreen();
        }
    });
    animate.start();


}
项目:android-topeka    文件:QuizActivity.java   
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void prepareCircularReveal(View startView, FrameLayout targetView) {
    int centerX = (startView.getLeft() + startView.getRight()) / 2;
    // Subtract the start view's height to adjust for relative coordinates on screen.
    int centerY = (startView.getTop() + startView.getBottom()) / 2 - startView.getHeight();
    float endRadius = (float) Math.hypot(centerX, centerY);
    mCircularReveal = ViewAnimationUtils.createCircularReveal(
            targetView, centerX, centerY, startView.getWidth(), endRadius);
    mCircularReveal.setInterpolator(new FastOutLinearInInterpolator());

    mCircularReveal.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            mIcon.setVisibility(View.GONE);
            mCircularReveal.removeListener(this);
        }
    });
    // Adding a color animation from the FAB's color to transparent creates a dissolve like
    // effect to the circular reveal.
    int accentColor = ContextCompat.getColor(this, mCategory.getTheme().getAccentColor());
    mColorChange = ObjectAnimator.ofInt(targetView,
            ViewUtils.FOREGROUND_COLOR, accentColor, Color.TRANSPARENT);
    mColorChange.setEvaluator(new ArgbEvaluator());
    mColorChange.setInterpolator(mInterpolator);
}
项目:Google-Maps-BottomSheet    文件:GoogleMapsBottomSheetBehavior.java   
private void updateHeaderColor(int newBackgroundColor, int newTextColor) {
    if (mCurrentColor != newBackgroundColor) {
        if (colorAnimation != null && colorAnimation.isRunning()) {
            colorAnimation.cancel();
        }
        if (headerLayout != null) {
            final int DURATION = 200;
            colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), mCurrentColor, newBackgroundColor).setDuration(DURATION);
            mCurrentColor = newBackgroundColor;
            colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    headerLayout.setBackgroundColor((int) valueAnimator.getAnimatedValue());
                }
            });
            colorAnimation.start();

            for (int i = 0, size = headerTextViews.size(); i < size; i++) {
                animateTextColorChange(newTextColor, DURATION, headerTextViews.get(i));
            }
        }
    }
}
项目:BLEPublicTransport    文件:TrainFragment.java   
private void animateNextStation() {
    int colorFrom = 0xFFFFFFFF;
    int colorTo = getResources().getColor(R.color.colorAccent);
    final ValueAnimator valueAnimator = ValueAnimator.ofObject(new ArgbEvaluator(),
            colorFrom,
            colorTo);

    final GradientDrawable background = (GradientDrawable) nextStationIcon.getBackground();
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

        @Override
        public void onAnimationUpdate(final ValueAnimator animator) {
            background.setColor((Integer) animator.getAnimatedValue());
        }


    });
    valueAnimator.setDuration(1600);
    valueAnimator.setRepeatMode(ValueAnimator.REVERSE);
    valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
    valueAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
    valueAnimator.start();
}
项目:CustomEQView    文件:HorizontalPicker.java   
/**
 * Calculates color for specific position on time picker
 * @param scrollX
 * @return
 */
private int getColor(int scrollX, int position) {
    int itemWithPadding = (int) (itemWidth + dividerSize);
    float proportion = Math.abs(((1f * scrollX % itemWithPadding) / 2) / (itemWithPadding / 2f));
    if(proportion > .5) {
        proportion = (proportion - .5f);
    } else {
        proportion = .5f - proportion;
    }
    proportion *= 2;

    int defaultColor;
    int selectedColor;

    if(pressedItem == position) {
        defaultColor = textColor.getColorForState(new int[] { android.R.attr.state_pressed }, textColor.getDefaultColor());
        selectedColor = textColor.getColorForState(new int[] { android.R.attr.state_pressed, android.R.attr.state_selected }, defaultColor);
    } else {
        defaultColor = textColor.getDefaultColor();
        selectedColor = textColor.getColorForState(new int[] { android.R.attr.state_selected }, defaultColor);
    }
    return (Integer) new ArgbEvaluator().evaluate(proportion, selectedColor, defaultColor);
}
项目:Blackbulb    文件:ExpandIconView.java   
private void updateColor(ArgbEvaluator colorEvaluator) {
    float fraction;
    int colorFrom;
    int colorTo;
    if (colorIntermediate != -1) {
        colorFrom = alpha <= 0f ? colorMore : colorIntermediate;
        colorTo = alpha <= 0f ? colorIntermediate : colorLess;
        fraction = alpha <= 0 ? (1 + alpha / 45f) : alpha / 45f;
    } else {
        colorFrom = colorMore;
        colorTo = colorLess;
        fraction = (alpha + 45f) / 90f;
    }
    color = (int) colorEvaluator.evaluate(fraction, colorFrom, colorTo);
    paint.setColor(color);
}
项目:IndicatorBox    文件:ParticleHeartView.java   
private void init(Context context, AttributeSet attrs) {
    mPaint = new Paint();
    //setFilterBitmap() and setAntiAlias used together to make drawing bitmap anti-aliased.
    mPaint.setFilterBitmap(true);
    mPaint.setAntiAlias(true);
    mMatrix = new Matrix();
    bitmapDisappearDust = BitmapFactory.decodeResource(getResources(), R.drawable.icon_red_dust);
    bitmapDisappearDustHalfWidth = bitmapDisappearDust.getWidth() / 2;
    bitmapDisappearDustHalfHeight = bitmapDisappearDust.getHeight() / 2;
    random = new Random(bitmapDisappearDust.getByteCount());
    mCenterBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_un_praised);
    centerBitmapHalfWidth = mCenterBitmap.getWidth() / 2;
    centerBitmapHalfHeight = mCenterBitmap.getHeight() / 2;
    this.setOnTouchListener(this);
    isPraised = false;
    //Follow circle
    outerCirclePaint = new Paint();
    innerCirclePaint = new Paint();
    outerCirclePaint.setStyle(Paint.Style.FILL);
    outerCirclePaint.setAntiAlias(true);
    innerCirclePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    innerCirclePaint.setAntiAlias(true);
    argbEvaluator = new ArgbEvaluator();
}
项目:MyAndroidDemo    文件:HorizontalPicker.java   
/**
 * Calculates color for specific position on time picker
 * @param scrollX
 * @return
 */
private int getColor(int scrollX, int position) {
    int itemWithPadding = (int) (itemWidth + dividerSize);
    float proportion = Math.abs(((1f * scrollX % itemWithPadding) / 2) / (itemWithPadding / 2f));
    if(proportion > .5) {
        proportion = (proportion - .5f);
    } else {
        proportion = .5f - proportion;
    }
    proportion *= 2;

    int defaultColor;
    int selectedColor;

    if(pressedItem == position) {
        defaultColor = textColor.getColorForState(new int[] { android.R.attr.state_pressed }, textColor.getDefaultColor());
        selectedColor = textColor.getColorForState(new int[] { android.R.attr.state_pressed, android.R.attr.state_selected }, defaultColor);
    } else {
        defaultColor = textColor.getDefaultColor();
        selectedColor = textColor.getColorForState(new int[] { android.R.attr.state_selected }, defaultColor);
    }
    return (Integer) new ArgbEvaluator().evaluate(proportion, selectedColor, defaultColor);
}
项目:droidddle    文件:ShotDetailsActivity.java   
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void updateStatusBarColor() {
    if (mShotFragment == null || true) {
        return;
    }
    final int desiredStatusBarColor;
    // Only use a custom status bar color if QuickContacts touches the top of the viewport.
    if (/*mScroller.getScrollNeededToBeFullScreen() <= 0*/ true) {
        desiredStatusBarColor = mStatusBarColor;
    } else {
        desiredStatusBarColor = Color.TRANSPARENT;
    }
    // Animate to the new color.
    if (UiUtils.hasLollipop()) {
        final ObjectAnimator animation = ObjectAnimator.ofInt(getWindow(), "statusBarColor", getWindow().getStatusBarColor(), desiredStatusBarColor);
        animation.setDuration(ANIMATION_STATUS_BAR_COLOR_CHANGE_DURATION);
        animation.setEvaluator(new ArgbEvaluator());
        animation.start();
    }
}
项目:LaunchEnr    文件:AllAppsTransitionController.java   
public AllAppsTransitionController(Launcher l) {
    mLauncher = l;
    mDetector = new VerticalPullDetector(l);
    mDetector.setListener(this);
    mShiftRange = DEFAULT_SHIFT_RANGE;
    mProgress = 1f;

    mEvaluator = new ArgbEvaluator();

    mAllAppsBackgroundColor = PreferencesState.isDarkThemeEnabled(l) ? ContextCompat.getColor(l, R.color.material_dark) : ContextCompat.getColor(l, R.color.material_light_o);
}
项目:YAAB    文件:PlayerPresenter.java   
private void backgroundAnimator(int background) {
    int colorFrom = context.getResources().getColor(R.color.background);
    ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, background);
    colorAnimation.setDuration(250); // milliseconds
    colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

        @Override
        public void onAnimationUpdate(ValueAnimator animator) {
            view.onBackgroundColorUpdate((int) animator.getAnimatedValue());
        }

    });
    colorAnimation.start();
}
项目:YAAB    文件:PlayerPresenter.java   
private void titleTextAnimator(int titleText) {
    int colorFrom = context.getResources().getColor(R.color.colorAccent);
    ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, titleText);
    colorAnimation.setDuration(250); // milliseconds
    colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

        @Override
        public void onAnimationUpdate(ValueAnimator animator) {
            view.onTitleTextColorUpdate((int) animator.getAnimatedValue());
        }

    });
    colorAnimation.start();
}
项目:YAAB    文件:PlayerPresenter.java   
private void bodyTextAnimator(int bodyText) {
    int colorFrom = context.getResources().getColor(R.color.default_text_color);
    ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, bodyText);
    colorAnimation.setDuration(250); // milliseconds
    colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

        @Override
        public void onAnimationUpdate(ValueAnimator animator) {
            view.onBodyTextColorUpdate((int) animator.getAnimatedValue());
        }

    });
    colorAnimation.start();
}