是否可以从Android中的代码动态更改菜单的颜色(我的意思是背景,文字颜色和图标)?如果是的话,该怎么做?
我知道如果先声明颜色样式然后加载,就可以这样做。但我希望从服务器获取颜色数据,然后从代码中动态设置它,而不事先在主题中声明它。
答案 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消息。收到代码后,更新共享优先权中的颜色代码。菜单颜色将自动更改。