我可以动态更改Android菜单的颜色吗?

时间:2016-09-29 08:02:53

标签: android android-theme android-menu

是否可以从Android中的代码动态更改菜单的颜色(我的意思是背景,文字颜色和图标)?如果是的话,该怎么做?

我知道如果先声明颜色样式然后加载,就可以这样做。但我希望从服务器获取颜色数据,然后从代码中动态设置它,而不事先在主题中声明它。

3 个答案:

答案 0 :(得分:1)

尝试更改背景/文字颜色: How to change Menu Item Color & Size programmatically?

要更改文字/图标,您只需覆盖onCreateOptionsMenu()方法并保存您的Menu对象。

@Override
public void onCreateOptionsMenu(
        Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.your_menu_xml, menu);
    yourMenu = menu;
}

然后在向API查询菜单项请求后,通过以下方式更改图标/文字:

MenuItem menuItem = yourMenu.findItem(R.id.menu_item);
menuItem.setIcon(R.drawable.your_drawable);
menuItem.setTitle("title");

答案 1 :(得分:0)

您需要为此创建customMenu xml。使用单独的键定义应用程序中的所有颜色代码。您可以从服务器传递密钥,然后选择相应的颜色。

否则,您甚至可以从服务器端传递Hex颜色代码。

答案 2 :(得分:0)

将您的颜色保存在sharedpreferance中。然后总是从共享的preferance中获取getColor并将其设置为菜单。每当您想要更新颜色时,请使用新的颜色代码从服务器向移动设备发送gcm消息。收到代码后,更新共享优先权中的颜色代码。菜单颜色将自动更改。