安卓5.0:如何改变最近应用程序标题颜色?

69

我正在使用AppCompat,我的主题扩展了Theme.AppCompat.Light.DarkActionBar

在Android 5 Lollipop中,当我按下最近使用的应用程序按钮时,我的应用程序标题栏中的标题是黑色而不是白色。

当我在应用程序内部时,一切看起来都很好。

我该怎么做才能更改最近使用的应用程序视图中的标题颜色?

编辑: 刚刚发现如果我使用较暗的colorPrimary,则标题就变为白色。 我仍然需要一种方法来强制使用原始颜色的白色标题。

enter image description here


1
我将最近使用的颜色设置为colorPrimaryDark,而不是使用较暗的颜色作为colorPrimary。就像状态栏颜色更暗一样,对于我来说,最近使用的颜色也更暗,标题变成了白色。我认为这是最好的方法。感谢您的问题和出色的应用程序unclouded。 - tasomaniac
3个回答

53

你不能强制文本颜色,它是根据你的colorPrimary颜色自动生成(白色或黑色)。


10
如果您有兴趣,以下是涉及的代码:https://github.com/android/platform_frameworks_base/blob/lollipop-release/packages/SystemUI/src/com/android/systemui/recents/model/Task.java#L147 - Chris Banes
我想补充一点,影响文本颜色的colorPrimary是在应用程序主题中定义为一个项目。例如:<item name="colorPrimary">@color/colorPrimary</item> - Timo Albert

39

我也看了一下,最好的方法是(来自MrEngineer13的建议)将我的最近应用程序颜色设置为我的主要颜色的 600 值

Bitmap bm = BitmapFactory.decodeResource(getResources(), app_icon);
TaskDescription taskDesc = new TaskDescription(getString(R.string.app_name), bm, getResources().getColor(R.color.primary_600));
MainActivity.setTaskDescription(taskDesc);

如果你仔细观察Android 5.0的联系人应用程序,你会发现Google自己也在做类似的事情:

Android 联系人截图

因此我认为自己无法更改标题颜色,但是Android会为你选择一个好的颜色。(这也将允许Android出于无障碍原因进行更改...)


尽管我想将自己的蓝色设置为应用程序中的主题颜色,谢谢! - David Corral
2
谢谢!这是真正的答案。我在调色板中使用了“白色文本”。例如,淡蓝色600 - #039BE5,在网站上调色板显示为白色标签。 - Jared Burrows

25

要更改颜色/标题/图标,您只需使用以下内容:

TaskDescription tDesc = new TaskDescription(mTitle, mIcon, mColor);
MainActivity.setTaskDescription(tDesc);

3
这只允许你更改背景/主要颜色,而不是标题。虽然我可以选择略深的背景颜色,这仍然很有用,因为标题会自动变为白色,但我仍然希望能直接更改标题颜色。 - Christian Göllner
2
本文介绍了TaskDescription并提供了一个示例 https://www.bignerdranch.com/blog/polishing-your-Android-overview-screen-entry/。 - Maragues
我应该把这段代码放在哪里?是放在我的主活动的onCreate方法中吗? - Marshall
@Marshall:这段代码的好位置是在onResume()中。我刚刚通过艰难的方式发现它在onCreate()中不起作用。 - user149408
我可以为这个设置Typeface吗? - Sathish Kumar J
那么在 API 级别 21 之前呢? - us2956

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接