【问题标题】:Why doesn't my background color change onPause?为什么我的背景颜色在暂停时不改变?
【发布时间】:2014-06-03 14:13:54
【问题描述】:

我正在尝试更改多任务按钮在查看最近的应用程序时显示/显示的小“屏幕截图”的颜色。我试图通过改变颜色来做到这一点:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onPause() {
        getWindow().getDecorView().getRootView().setBackgroundColor(Color.BLUE);
        super.onPause();
    }

}

这不起作用。使用上面的代码,我可以看到颜色变为蓝色,但屏幕截图不显示蓝色。我想如果我稍微延迟一下(这完全是概念性的。我知道如果你故意延迟离开活动,用户会很生气)然后屏幕截图会显示为蓝色。所以我做了:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onPause() {
        getWindow().getDecorView().getRootView().setBackgroundColor(Color.BLUE);
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        super.onPause();
    }

}

但现在我完全糊涂了。在我回到它之前,颜色根本不会变成蓝色。这怎么可能?颜色的变化明显在 sleep() 之前。

【问题讨论】:

  • 您是想在截屏时隐藏您的布局,还是真的希望背景为蓝色?
  • 您应该将代码从 OnPause 更改为 OnResume getWindow().getDecorView().getRootView().setBackgroundColor(Color.BLUE);
  • @joao2fast4u 我正在尝试“隐藏”屏幕截图,或将其颜色更改为黑色。我为这个例子选择了蓝色。我正在尝试这样做,但对于 Android:stackoverflow.com/questions/18959411/…

标签: android android-layout android-activity android-lifecycle


【解决方案1】:

好的,根据您在 cmets 中的解释,您可以通过设置标志 WindowManager.LayoutParams.FLAG_SECURE 来避免屏幕截图显示您的布局,而是显示黑色背景。此标志将窗口内容视为安全,防止其出现在屏幕截图中或在非安全显示器上查看。

要使用它,请在您的 Activity onCreate() 中调用它:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
            WindowManager.LayoutParams.FLAG_SECURE);

注意一定要在setContentView()之前调用。

【讨论】:

  • 嗯...是的。我知道这是一个选项,但这也会禁用我想要启用的屏幕截图。
  • 嗯...我明白了,在这种情况下,您可以通过在 AndroidManifest.xml 中为活动设置 android:excludeFromRecent 属性来从最近的应用屏幕中排除您的活动。
猜你喜欢
  • 2018-05-30
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多