猿问

如何在旋转时更改 AppCompatButton 的背景?

我正在使用 RotateAnimation 旋转 AppCompatButton,用作工具栏按钮,我想在旋转时更改其背景。

到目前为止,我没有找到任何有用的主题。

这是我的代码:

AppCompatButton mBtn = (AppCompatButton) view.findViewById(R.id.search_btn); 
       Animation mRotateAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotation);
mBtn.setAnimation(mRotateAnimation);
mBtn.startAnimation(mRotateAnimation);

旋转.xml:

<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="0"
    android:duration="600" />

我想在动画的开始和结束之间获得平滑的背景变化。任何有用的资源链接或代码都会很棒。感谢你们!


繁花如伊
浏览 115回答 1
1回答

繁星淼淼

您应该ValueAnimation在视图中添加另一个。AppCompatButton mBtn = (AppCompatButton) view.findViewById(R.id.search_btn);&nbsp; &nbsp; &nbsp; &nbsp; Animation mRotateAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotation);mBtn.setAnimation(mRotateAnimation);mBtn.startAnimation(mRotateAnimation);int colorFrom = getResources().getColor(R.color.red);int colorTo = getResources().getColor(R.color.blue);ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);colorAnimation.setDuration(600);colorAnimation.addUpdateListener(new AnimatorUpdateListener() {&nbsp; &nbsp; @Override&nbsp; &nbsp; public void onAnimationUpdate(ValueAnimator animator) {&nbsp; &nbsp; &nbsp; &nbsp; mBtn.setBackgroundColor((int) animator.getAnimatedValue());&nbsp; &nbsp; }});colorAnimation.start();
随时随地看视频慕课网APP

相关分类

Java
我要回答