从java更改应用程序的背景时,单击菜单时不会';I don’我穿的颜色不对
我试图更改背景应用程序的颜色,当我单击菜单时,例如更改背景黑色。 它第一次变为透明的颜色,像灰色,而不是蓝色 如果颜色是红色,我想用红色和其他颜色。 这是我的密码从java更改应用程序的背景时,单击菜单时不会';I don’我穿的颜色不对,java,android,xml,Java,Android,Xml,我试图更改背景应用程序的颜色,当我单击菜单时,例如更改背景黑色。 它第一次变为透明的颜色,像灰色,而不是蓝色 如果颜色是红色,我想用红色和其他颜色。 这是我的密码 mPopupMenu = new PopupMenu(this, settings); MenuInflater menuInflater = mPopupMenu.getMenuInflater(); menuInflater.inflate(R.menu.main_settings, mPopup
mPopupMenu = new PopupMenu(this, settings);
MenuInflater menuInflater = mPopupMenu.getMenuInflater();
menuInflater.inflate(R.menu.main_settings, mPopupMenu.getMenu());
settings.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPopupMenu.show();
mPopupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if(id == R.id.menu_back_white) {
setActivityBackgroundColor(R.color.white);
} else if (id == R.id.menu_back_black) {
setActivityBackgroundColor(R.color.material_grey_900);
}
return false;
}
});
}
});
public void setActivityBackgroundColor(int color) {
View view = this.getWindow().getDecorView();
view.setBackgroundColor(color);
}
颜色
<color name="material_grey_900">#ff212121</color>
<color name="white">#FFFFFF</color>
#ff212121
#FFFFFF
风格
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimaryDark">@color/blue_900</item>
<item name="colorPrimary">@color/blue_300</item>
<item name="colorAccent">@color/blue_300</item>
<item name="colorControlNormal">@color/white</item>
</style>
@颜色/蓝色
@颜色/蓝色\u 300
@颜色/蓝色\u 300
@颜色/白色
视图。setBackgroundColor
需要一个颜色值,但您给它一个资源id
如中所述,您必须使用例如(不推荐的变体)对其进行转换
或
(由于支持库23)
视图。setBackgroundColor
需要一个颜色值,但您给它一个资源id
如中所述,您必须使用例如(不推荐的变体)对其进行转换
或
(自支持库23起)我添加了此代码getResources,它正在工作,但您知道如何更改textview和imagebutton的颜色吗?@Spritzig我还没有尝试过此方法,但对于
textview
它应该以相同的方式工作。按钮可能需要可绘制的状态列表。有关详细信息,请参阅文档。我已修复了正在使用textview尝试的图像按钮。我已添加了此代码getResources,它正在工作,但您知道如何更改textview和imagebutton的颜色吗?@Spritzig我尚未尝试此操作,但对于textview
,它应该以相同的方式工作。按钮可能需要可绘制的状态列表。有关详细信息,请参阅文档。我已修复了正在使用textview尝试的图像按钮
getResources().getColor(color);
ContextCompat.getColor(context, R.color.your_color);