我的应用测试人员报告:
“最近的应用程序列表中的应用程序的缩略图根本没有调整.在我看来它像主屏幕壁纸(tolikdru:可能,只是透明的rect),或者像应用程序屏幕的绿色背景,但从来没有真正的应用程序的快照.“
所以行为是 like described here.
“最近的应用程序列表中的应用程序的缩略图根本没有调整.在我看来它像主屏幕壁纸(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,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)
作为活动的onCreate()方法的第一行.