我向我的 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); }
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
在这种情况下没有“动画颜色”这样的东西。Circular Reveal 动画,在引擎盖下,将圆形裁剪蒙版应用于视图并为裁剪值设置动画以在视觉上表示“显示”。您看到的显示颜色是实际视图本身。
如果我理解正确,您希望在显示运行时在您的视图中进行颜色转换。如果是这种情况,请遵循以下步骤:
声明开始和结束颜色。
将动画侦听器附加到圆形显示动画。
在显示动画更新时,使用 ARGBevaluator 使用显示动画当前进度在开始和结束颜色之间进行评估。将此颜色值设置为视图的背景。
添加回答
举报
0/150
提交
取消