gpt4 book ai didi

java - 当单击菜单时从 java 更改应用程序的背景时,它不会采用正确的颜色

转载 作者:行者123 更新时间:2023-12-02 01:47:52 24 4
gpt4 key购买 nike

当我单击菜单时,我试图更改背景应用程序的颜色,例如更改背景黑色。它的颜色第一次变成透明的,就像灰色一样,然后保持蓝色。

我想要如果颜色是红色就采取红色和其他颜色。这是我的代码。

 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>

样式

<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>

enter image description here

最佳答案

view.setBackgroundColor 需要一个颜色值,但您给它一个资源 ID。

Get color-int from color resource 中所述你必须用例如来转换它(已弃用的变体)

getResources().getColor(color);

ContextCompat.getColor(context, R.color.your_color);

(自支持库 23 起)

关于java - 当单击菜单时从 java 更改应用程序的背景时,它不会采用正确的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53481820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com