我正在尝试更改Android应用中的背景颜色。在我按下按钮时,它会更改该特定活动的颜色,而不是所有其他活动的颜色。有没有办法改变整个应用程序?
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);
}
}
答案 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。
但是建议不要在运行时更改应用主题。