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

标签 java android thumbnails android-recents

我的应用程序的测试人员报告: “最近的应用程序列表中的应用程序缩略图根本没有调整。在我看来,它要么像主屏幕壁纸(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(),因为文档说:

The default implementation returns fails and does not draw a thumbnail; this will result in the platform creating its own thumbnail if needed.

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

那么请你帮忙解答一下问题:

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

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

提前致谢!

最佳答案

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

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

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

关于java - 如何强制应用程序为最近的应用程序列表创建缩略图(快照)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22817259/

相关文章:

java - Htmlunit通过ID而不是名称获取表单输入

android - Room LiveData vs AsyncTask 用于不需要更新的单个查询

windows - 为文件夹而不是特定文件类型注册缩略图处理程序

CSS 缩略图对齐

java - 找不到类 'kotlin.jvm.internal.DefaultConstructorMarker'

css - 如何向我的网站画廊添加分页?

java - 在 ProgressDialog 上调用 setMessage() 时出现问题

java - 只读数据的 Spring Boot 存储库 : @Query annotation type not applicable to this kind of declaration

java - 如何从不同的 Activity 获取 RadioGroup 值

java - 如何将 "\n"添加到字符串的最后一个单词?