Android objectAnimator animate backgroundColor of Layout

前端 未结 2 1976
感动是毒
感动是毒 2020-12-05 15:20

I have a problem. I want to animate the background color of a LinearLayout, using ObjectAnimator.
The problem is that it anima

相关标签:
2条回答
  • 2020-12-05 16:02

    It seems to be an old issue. I stumbled on this question while having a similar problem.

    At the end it was just a bug in Android. The code is supposed to work, but the AnimatorInflater just blunders when setting the evaluator.

    So setting the TypeEvaluator after the inflation again would do the trick.

        ObjectAnimator objAnim = (ObjectAnimator)AnimatorInflater.loadAnimator(getActivity(), R.animator.animator_bkg);
        objAnim.setTarget(view);
        objAnim.setEvaluator(new ArgbEvaluator());
        objAnim.start();
    

    Set to new ArgbEvaluator() the animation works like intended.

    0 讨论(0)
  • 2020-12-05 16:04

    I googled a bit. There is an answer. Try to use TransitionDrawable. http://developer.android.com/guide/topics/resources/drawable-resource.html#Transition

    Also, there is a topic somewhere on stackoverflow.com dedicated to the same problem.

    ADDED Code example:

        Button btn = (Button)this.findViewById(R.id.btn1);
        //Let's change background's color from blue to red.
        ColorDrawable[] color = {new ColorDrawable(Color.BLUE), new ColorDrawable(Color.RED)};
        TransitionDrawable trans = new TransitionDrawable(color);
        //This will work also on old devices. The latest API says you have to use setBackground instead.
        btn.setBackgroundDrawable(trans);
        trans.startTransition(5000);
    
    0 讨论(0)
提交回复
热议问题