更改圆形显示动画的颜色

我向我的 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);

    }


沧海一幻觉
浏览 132回答 1
1回答

动漫人物

在这种情况下没有“动画颜色”这样的东西。Circular Reveal 动画,在引擎盖下,将圆形裁剪蒙版应用于视图并为裁剪值设置动画以在视觉上表示“显示”。您看到的显示颜色是实际视图本身。如果我理解正确,您希望在显示运行时在您的视图中进行颜色转换。如果是这种情况,请遵循以下步骤:声明开始和结束颜色。将动画侦听器附加到圆形显示动画。在显示动画更新时,使用 ARGBevaluator 使用显示动画当前进度在开始和结束颜色之间进行评估。将此颜色值设置为视图的背景。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java