更改活动背景的颜色

时间:2017-03-09 18:15:35

标签: android

我正在尝试更改Android应用中的背景颜色。在我按下按钮时,它会更改该特定活动的颜色,而不是所有其他活动的颜色。有没有办法改变整个应用程序?

screen

public class colorPicker extends AppCompatActivity {

    View view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_color_picker);

        view = this.getWindow().getDecorView();

    }

    public void goPink(View v){

        view.setBackgroundResource(R.color.Pink);
    }

    public void goGreen(View v){

        view.setBackgroundResource(R.color.Green);
    }

    public void goYellow(View v){
        view.setBackgroundResource(R.color.Yellow);

    }
}

3 个答案:

答案 0 :(得分:0)

您可以更改应用主题的窗口背景颜色,不要将背景用于活动,也可以使用透明背景进行活动。

答案 1 :(得分:0)

在styles.xml中创建一个主题,并在该主题中添加以下内容

<item name="android:windowBackground">@color/window_background

并在

中设置android:theme="@style/YourTheme"
<application>
...
</application
清单文件中的

答案 2 :(得分:0)

在这种情况下,您需要在活动中添加一些更改。   在onCreate

 if(getIntent().getExtras() != null)
    {
        int theme = getIntent().getIntExtra("theme", R.style.AppTheme);
        setTheme(theme);
        getApplication().setTheme(theme);
        //recreate();
    }

条件onCLick

  if(condition)
   getIntent().putExtra("theme", R.style.AppTheme2);
   else
   getIntent().putExtra("theme", R.style.AppTheme);

并维护2个主题

 <style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="colorPrimary"></item></style>

和第二个类似的主题只是将名称改为BaseTheme2。

但是建议不要在运行时更改应用主题。