尝试更改状态栏颜色时应用程序崩溃

时间:2016-02-23 17:58:22

标签: android

我使用以下代码更改状态栏的颜色。当我尝试这样做时,应用程序崩溃了。

Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(getApplicationContext().getResources().getColor(Color.BLUE));

2 个答案:

答案 0 :(得分:1)

getColor(Color.BLUE) getColor获取资源标识符,即R.color.blue而不是静态Color常量

价:

http://developer.android.com/intl/es/reference/android/content/res/Resources.html#getColor(int)

  

由aapt工具生成的所需资源标识符。此整数对包,类型和资源条目进行编码。值0是无效的标识符。

此方法现已弃用,建议您使用兼容性getColor

https://stackoverflow.com/a/31590927/413127

答案 1 :(得分:1)

把这段代码

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
    Window window = getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    window.setStatusBarColor(getResources().getColor(R.color.textblue));
}