我使用以下代码更改状态栏的颜色。当我尝试这样做时,应用程序崩溃了。
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));
答案 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
:
答案 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));
}