如何强制应用为最近的应用列表创建缩略图(快照)?

时间:2014-04-02 16:14:09

标签: java android thumbnails android-recents

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

我的设备使用的是Android 2.0,因此无法检查和调试问题(最近的应用中的缩略图是自Android 3.0及以上版本)。因此,进一步的研究处于“盲目模式”。

我决定使用onCreateThumbnail()as proposed here手动强制创建应用缩略图。 (为了简化开始时的任务,我没有抓住真正的快照,而是使用splashscreen drawable。)

@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)如果没有,是否还有其他解决方法可以让应用生成正确的缩略图(或任意抽签)?

提前致谢!

1 个答案:

答案 0 :(得分:2)

This is an issue with the OS。不幸的是,它似乎没有用。如果你不希望人们出于某种原因从最近看你的应用程序,你可以把

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

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