Android 安卓:使用安全标志时更改窗口背景颜色
我有一个请求,当我的Android应用程序放在后台时,我会清空屏幕以隐藏敏感数据。这很容易使用以下工具实现:Android 安卓:使用安全标志时更改窗口背景颜色,android,Android,我有一个请求,当我的Android应用程序放在后台时,我会清空屏幕以隐藏敏感数据。这很容易使用以下工具实现: getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); 困难的部分似乎是改变你在后台查看应用程序时看到的空白屏幕的颜色。默认情况下,它看起来是白色的,我似乎找不到一种方法来覆盖它。有人有什么想法吗?很遗憾,您无法在“最近”视图中自定义缩略图的颜色 正如您在缩略图的默认颜色(0xffffffff)中所看到的,缩略图是硬编
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
困难的部分似乎是改变你在后台查看应用程序时看到的空白屏幕的颜色。默认情况下,它看起来是白色的,我似乎找不到一种方法来覆盖它。有人有什么想法吗?很遗憾,您无法在“最近”视图中自定义缩略图的颜色 正如您在缩略图的默认颜色(
0xffffffff
)中所看到的,缩略图是硬编码的,因此不可自定义:
/** Updates the paint to draw the thumbnail. */
void updateThumbnailPaintFilter() {
if (mInvisible) {
return;
}
int mul = (int) ((1.0f - mDimAlpha) * mThumbnailAlpha * 255);
int add = (int) ((1.0f - mDimAlpha) * (1 - mThumbnailAlpha) * 255);
if (mBitmapShader != null) {
mLightingColorFilter.setColorMultiply(Color.argb(255, mul, mul, mul));
mLightingColorFilter.setColorAdd(Color.argb(0, add, add, add));
mDrawPaint.setColorFilter(mLightingColorFilter);
mDrawPaint.setColor(0xffffffff);
} else {
int grey = mul + add;
mDrawPaint.setColorFilter(null);
mDrawPaint.setColor(Color.argb(255, grey, grey, grey));
}
invalidate();
}
使用
FLAG\u SECURE
时,我可以通过styles.xml
文件中的AppTheme将窗口背景颜色更改为“黑色”,方法是更改主题,如下所示:
<style name="AppTheme" parent="Theme.AppCompat">
****
</style>
****
它可以定制为任何颜色,但我需要黑色,因此如果您需要定制颜色,请进行进一步调查。这是目前唯一的解决方案吗?