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

6

我有一个请求,当我的Android应用程序进入后台时,我希望可以将屏幕变黑以隐藏敏感数据。使用以下方法可以轻松实现此功能:

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

问题似乎在于更改查看后台应用程序时获得的空白屏幕的颜色。默认情况下,它似乎是白色的,我似乎找不到覆盖它的方法。有人有什么想法吗?


现在这是唯一的解决方案吗? - Andrey Solera
1个回答

12

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

正如您在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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接