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

nwa*_*man 3 android

我有一个请求,当我的Android应用程序放入后台时,我将屏幕空白以隐藏敏感数据.这很容易实现使用:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ini 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();
}
Run Code Online (Sandbox Code Playgroud)