【问题标题】:Android: Changing color of window background when using FLAG_SECUREAndroid:使用 FLAG_SECURE 时更改窗口背景的颜色
【发布时间】:2020-08-25 20:18:02
【问题描述】:

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

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

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

【问题讨论】:

  • 这是目前唯一的解决方案吗?

标签: android


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    它可以自定义为任何颜色,但我需要黑色,所以如果您需要自定义颜色,请进一步调查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多