Android:使用FLAG_SECURE时更改窗口背景的颜色

时间:2015-10-21 01:34:14

标签: android

我有一个请求,当我的Android应用程序被置于后台时,我将屏幕空白以隐藏敏感数据。这很容易使用:

实现
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

困难的部分似乎正在改变您在后台查看应用时获得的空白屏幕的颜色。默认情况下,它似乎是白色的,我似乎找不到覆盖它的方法。有人有什么想法吗?

2 个答案:

答案 0 :(得分:8)

很遗憾,您无法在最近视图中自定义缩略图的颜色。

正如您在TaskViewThumbnail中看到的那样,缩略图的默认颜色(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();
}

答案 1 :(得分:0)

FLAG_SECURE文件中通过AppTheme通过styles.xml通过以下主题更改主题时,我可以将窗口背景的颜色更改为“黑色”:

<style name="AppTheme" parent="Theme.AppCompat"> 
****
</style>

它可以定制为任何颜色,但是我需要黑色,因此如果您需要自定义颜色,请进行进一步研究。