我正在制作一个可以拨打和接听 VoIP 语音电话的应用程序。因为我想模仿默认电话行为,所以我想在打电话时做与系统相同的事情:在打电话时将状态栏涂成绿色,以突出显示他正在通话的用户。
只是为了澄清以避免被标记为重复:这个问题与更改状态栏颜色有关,不仅在我们的活动中,而且在整个设备中,就像在通话中的某些电话一样。
有可能实现吗?
我正在制作一个可以拨打和接听 VoIP 语音电话的应用程序。因为我想模仿默认电话行为,所以我想在打电话时做与系统相同的事情:在打电话时将状态栏涂成绿色,以突出显示他正在通话的用户。
只是为了澄清以避免被标记为重复:这个问题与更改状态栏颜色有关,不仅在我们的活动中,而且在整个设备中,就像在通话中的某些电话一样。
有可能实现吗?
使用这样的东西(对于版本> 23)
这是我的老方法。有些东西已弃用,找到解决方案并修复它
protected void setStatusBarColor(View view, int color, boolean isLight) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(color == 0) color = ContextCompat.getColor(this, R.color.colorPrimaryDark);
if(isLight) {
int flags = view.getSystemUiVisibility();
flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
view.setSystemUiVisibility(flags);
}
//getWindow().setStatusBarColor(Color.WHITE);
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(color);
}
}