当我的应用程序出现在后台应用程序部分(或其他任何部分)时,我想更改窗口栏的颜色和图标。
例如,Facebook的应用程序在此屏幕中显示不同的图标,其ic_launcher图标为白色" f"在蓝色背景上,Instagram应用程序将窗口栏背景颜色从白色更改为黑色,一些应用程序更改其窗口栏标题颜色等等。我试图搜索此信息,但我不确定如何调用此功能或如何为了搜索这个,因此我找不到解决方案。
任何帮助将不胜感激,谢谢你们提前。
答案 0 :(得分:1)
如果有人遇到同样的问题,这就是解决方案:
在概览屏幕(也称为最近的屏幕,最近的任务列表或最近的应用程序)中设置应用程序apprearence样式的唯一方法是设置ActivityManager.TaskDescription
。所以你就是这样做的:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
String label = getString(R.string.app_name);
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_welcome_activity);
int color = ResourcesCompat.getColor(getResources(), R.color.colorPrimary600, null);
ActivityManager.TaskDescription taskDesc = new ActivityManager.TaskDescription(label, icon, color);
setTaskDescription(taskDesc);
}
这必须在你的Activity onCreate()方法或onResume()中完成,有人说它只与一个或另一个一起工作,但对我来说它同时适用于两者。您只需在顶级活动代码中插入这段代码,因为默认情况下,TaskDescription基于任务活动堆栈底部的活动,因此其他活动不会影响样式,除非这些活动在运行时明确设置TaskDescription。
请注意,不能强制使用文本颜色,而是根据colorPrimary颜色自动生成(白色/黑色)。因此,将标签颜色设置为白色的替代方法,即使Google似乎使用,也可以设置一个更暗的colorPrimary,600,作为TaskDescription颜色,就像我在上面的代码中所做的那样。较浅的颜色会将文本设置为黑色。
另外请确保使用SDK版本检查来围绕setTaskDescription(taskDesc)
,因为此功能仅在Lollipop上引入。
可以找到对此解决方案的更深入解释here。希望这会有所帮助。
答案 1 :(得分:0)
您必须使用perl -pe 's/([[:blank:]]\x00)+/,\x00/g' file
this可能重复。