Various devices use various backgrounds for their options menu. The problem this causes me is that the gray-ish icons I use for my options menu buttons don’t look great on darker menu backgrounds. From my reading and experimentation I see three options for dealing with this. Number 3 is the one I intend to do, but I have a question about implementing it. Also, I would be very interested in any general thoughts/advice about this issue:
-
Use icons that look good regardless of the background color. Maybe dark-ish gray icons with white-ish outlines? This would be an easy option to implement, but getting the ideal icon is tricky.
-
Set a custom background color. The code for doing this appears to be very hacky, and this results in an options menu that doesn’t conform to the device theme.
-
Have 2 sets of icons, programmatically set one light-ish menus and one for dark-ish menus. This seems promising aesthetically, but I can’t find how to determine the color/lightness of the background?
The best option (and the one I’ve done before without any problems) is to set a custom background color. It isn’t really that hacky, if you understand how the Options Menu works. When the Options Menu is inflated, it references a
ViewObject that it uses for the background of each button. The problem is, different device manufacturers use custom themes (blech). The way around this to ensure that your Options Menu always looks the same regardless of the device your application is running on is to create a customViewand set that as the background.This is the best resource I’ve found for this issue:
http://bit.ly/ymc0Zc
I hope that helps!!