更改圆形显示动画的颜色

Changing the color of the circular reveal animation

我向我的 fab 按钮添加了圆形显示动画,但我没有将片段颜色更改为不同的颜色,而是想更改动画的颜色,因为我希望我的下一个片段是白色背景。我试图将片段颜色更改为不同于白色并再次变回白色,但它没有用。那么有没有办法改变动画的颜色,而不是片段的颜色?这是我的一些代码:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        final View rootView = inflater.inflate(R.layout.fragment_note_add, container, false);


        rootView.addOnLayoutChangeListener(new View.OnLayoutChangeListener(){
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom){
                rootView.removeOnLayoutChangeListener(this);
                rootView.setBackgroundColor(getArguments().getInt("color"));
                int cx = getArguments().getInt("cx");
                int cy = getArguments().getInt("cy");

                int radius = (int) Math.hypot(right, bottom);

                Animator reveal = ViewAnimationUtils.createCircularReveal(v, cx, cy, 0, radius);
                reveal.setInterpolator(new DecelerateInterpolator(2f));
                reveal.start();
            }
        });
        return rootView;
    }

这里我又尝试把背景弄白了

 @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        //Initialize UI Elements
        FloatingActionButton saveButton = view.findViewById(R.id.fab_add);
        saveButton.setOnClickListener(saveButtonListener);
        editText = view.findViewById(R.id.note_editor);
        view.setBackgroundColor(getResources().getColor(R.color.white));
        super.onViewCreated(view, savedInstanceState);
    }

在这种情况下没有"animation color"这样的东西。 Circular Reveal 动画,在引擎盖下,将圆形裁剪蒙版应用于视图并为裁剪值设置动画以直观地表示 "reveal"。您看到的显示颜色是实际视图本身。

如果我理解正确的话,您希望在视图中进行颜色过渡,因为显示是 运行。如果是这种情况,请遵循以下步骤:

  • 声明开始和结束颜色。
  • 将动画侦听器附加到圆形显示动画。
  • 在显示动画更新时,使用 ARGBevaluator 使用显示动画的当前进度在开始和结束颜色之间进行评估。将此颜色值设置为视图的背景。