【问题标题】:How to force app to create thumbnail (snapshot) for recent apps list?如何强制应用程序为最近的应用程序列表创建缩略图(快照)?
【发布时间】:2014-05-14 01:53:49
【问题描述】:

我的应用程序的测试人员报告说: “最近的应用程序列表中的应用程序缩略图根本没有调整。在我看来,它要么像主屏幕壁纸(tolikdru:可能,只是透明矩形),要么像应用程序屏幕的绿色背景,但从来没有真正的应用程序的快照。” 所以行为是like described here

我的设备运行的是 Android 2.0,因此我无法检查和调试问题(最近的应用程序中的缩略图是 Android 3.0+ 之后的版本)。因此,进一步的研究处于“盲目模式”。

我决定使用 onCreateThumbnail() as proposed here 手动强制创建应用缩略图。 (为了简化开始的任务,我没有捕捉真正的快照,而是采用可绘制的闪屏。)

@Override
public boolean onCreateThumbnail(Bitmap outBitmap, Canvas thumbCanvas) {
    super.onCreateThumbnail(outBitmap, thumbCanvas);

    //splashscreen drawable to bitmap
    outBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.titel);

    //automatically scale to provided canvas 
    //(is the canvas provided as input ???)
    thumbCanvas.drawBitmap(outBitmap, 0, 0, new Paint());

    //is the outBitmap itself scaled to canvas or its copy???
    return true;
}

我不确定上面的代码是否正确,因为我无法测试它(见下文)。

According to docs 另一个可能的解决方案可能只是一个虚拟的@Override onCreateThumbnail,里面只有 super.onCreateThumbnail(),因为文档说:

默认实现返回失败,不绘制 缩略图; 这将导致平台创建自己的缩略图 如果需要。

但是 onCreateThumbnail 方法不会触发,至少在我的 Android 2 上是这样。实际上这个技巧是为 Android 3+ 而设计的。 同样是reported here (year 2012)and also here (year 2009)。在这两种情况下,都没有指定使用的 Android 版本。

请您帮忙解答一下问题:

1) 上面的代码能否在 Android 3+ 设备上使用最近应用列表中的缩略图?

2) 如果没有,是否有任何其他解决方法可以让应用生成正确的缩略图(或我选择的任意可绘制对象)?

提前致谢!

【问题讨论】:

    标签: java android thumbnails android-recents


    【解决方案1】:

    This is an issue with the OS。不幸的是,它似乎不起作用。如果您不希望人们出于某种原因从最近查看您的应用,您可以放置​​

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)
    

    作为活动的 onCreate() 方法的第一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2017-09-02
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      相关资源
      最近更新 更多