添加Lollipop后,您现在可以在更改应用时更改此窗口的颜色。我不知道它叫什么,因此无法找到它的任何信息但是如果你看图像你可以看到Keep应用程序现在是黄色的。
如何更改此颜色?
Here is a link to the image, it won't let me attach it since I'm new
由于
答案 0 :(得分:4)
您可以使用setTaskDescription()来实现此目的:
setTaskDescription(new ActivityManager.TaskDescription(label, icon, color));
对于android文档:
设置描述此活动的任务的信息 在最近的系统UI中进行演示。当getRecentTasks(int, 调用int),按顺序遍历每个任务的活动 从最顶层的活动到最底层的活动。遍历继续 对于每个属性,直到找到合适的值。对于每项任务 taskDescription将在ActivityManager.TaskDescription中返回。
参数taskDescription TaskDescription属性 用此活动描述任务
答案 1 :(得分:0)
只需将此代码放入目标活动的onCreate
方法中即可
int color = getResources().getColor(R.color.your_top_bar_color);
setTaskDescription(new ActivityManager.TaskDescription(null, null, color));
请注意,以上代码要求API级别21(Android 5.0 Lolipop)或更高。如果还需要支持较旧的设备,则可以在代码周围加上以下条件:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int color = getResources().getColor(R.color.your_top_bar_color);
setTaskDescription(new ActivityManager.TaskDescription(null, null, color));
}
另外请注意,您将需要在每个活动中设置顶部栏的颜色,否则在启动另一个活动时将重置您的颜色。 (您可以通过将代码放入某种BaseActivity中来缓解此问题,其他Activity将从中继承。)
有关此主题的有用文章:https://www.bignerdranch.com/blog/polishing-your-Android-overview-screen-entry/
答案 2 :(得分:-1)
1.正常方式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
String title = getString(R.string.app_name);
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
int color = getResources().getColor(R.color.color_primary);
setTaskDescription(new ActivityManager.TaskDescription(title, icon, color));
}
2.reflected
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
Class<?> clazz = Class.forName("android.app.ActivityManager$TaskDescription");
Constructor<?> cons = clazz.getConstructor(String.class, Bitmap.class, int.class);
Object taskDescription = cons.newInstance(title, icon, color);
Method method = ((Object) BaseActivity.this).getClass().getMethod("setTaskDescription", clazz);
method.invoke(this, taskDescription);
} catch (Exception e) {
}
}