我正在使用值动画师通过动画更改状态栏颜色,就像我的手机和模拟器上的魅力一样,但是当我将它发送给另一个人时,它会因NoSuchMethodError而崩溃,我无法弄清楚为什么,
如果某些手机上有可用的方法,我该怎么检查?
还有其他方法可以为状态栏设置颜色更改动画吗?
以下代码:
final ValueAnimator statusBarAnimator = ValueAnimator.ofArgb
(ContextCompat.getColor(MainScreen.this, R.color.colorPrimary),
ContextCompat.getColor(MainScreen.this, R.color.colorPrimaryDark));
statusBarAnimator.setDuration(500);
statusBarAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
// how it works is that every time it updates, it goes to change the color by a little bit
@Override
public void onAnimationUpdate(ValueAnimator animation) {
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor((Integer) statusBarAnimator.getAnimatedValue());
}
}
});
此处出现错误代码(来自Crash Analytics):
Fatal Exception: java.lang.NoSuchMethodError: android.animation.ValueAnimator.ofArgb
at com.peter.georeminder.MainScreen.initView(MainScreen.java)
at com.peter.georeminder.MainScreen.onCreate(MainScreen.java)
at android.app.Activity.performCreate(Activity.java)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$1100(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
at dalvik.system.NativeStart.main(NativeStart.java)