【问题标题】:Can I set a different icon for the android task switcher?我可以为 android 任务切换器设置不同的图标吗?
【发布时间】:2016-02-13 18:24:18
【问题描述】:

我的应用有一个徽标,我可以将其设为黑色或白色。我指定的启动器图标是黑色的,我想保持它的颜色。但是,我的应用程序使用的是深色主题,并且最近的应用程序堆栈中的应用程序标题栏的颜色也是黑色的。黑色标题栏上的黑色图标看起来很难看,尤其是在白色文本旁边。这是一个截图来帮助解释:

是否可以为启动器和任务切换器指定不同的图标?

编辑:我看到 Chrome 这样做:它将任务切换器图标更改为当前站点的图标,所以除非该 API 是私有的,否则我绝对知道这是可能的。

【问题讨论】:

    标签: android icons


    【解决方案1】:

    是的,从 API 21 开始,我们可以选择使用 TaskDescription API 在“最近使用的应用”屏幕中自定义应用的表示。

    如果您只关心图标,则基本上可以在Activity 中的任何位置使用下面的这个 sn-p:

          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
              setTaskDescription(
                  new ActivityManager.TaskDescription(
                      null, // Leave the default title.
                      R.drawable.the_icon_you_want,
                      null // Leave the default color                    
              )  
          }
    

    但是,您必须记住,您的应用在“最近使用的应用”屏幕上的显示是由您设置的最后一个 TaskDescription 决定的。

    引自 Big Nerd Ranch 关于此事的精彩文章:

    默认情况下,TaskDescription 基于任务的活动堆栈底部的活动。堆积的其他活动不会影响样式,除非这些活动在运行时明确设置了 TaskDescription。明确设置了 TaskDescription 的最顶层 Activity 将胜过清单中指定的样式或设置了 TaskDescriptions 的堆栈中下面的 Activity 中指定的样式。

    因此,为了尽可能获得最佳结果,您需要将该 sn-p 放入应用的 MainActivityonCreate(..) 方法中。

    【讨论】:

    • 这给了我error: incompatible types: int cannot be converted to Bitmap, R.drawable.the_icon_you_want
    • 代码不会按原样编译。构造函数的第三个参数是一个 int(因此它不能为 null)。如果您希望将颜色保留为默认值,可以在此处使用两参数构造函数。 developer.android.com/reference/android/app/…
    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2010-09-22
    • 2013-10-26
    • 1970-01-01
    • 2020-07-08
    相关资源
    最近更新 更多