Thanks to the code from Ivan Memruk at Mind The Robot, and refinements done by Freddy Martens at atstechlab, I made some additional tweeks to get a reasonable detail gauge for the weather.

I still have more work to do on the details, the current code, although very flexible, makes a lot of implicit assumptions about the values the gauge will have, and the resulting geometry of the face. So, for instance, you can’t get a 300 degree thermometer face, and have the hand point at the right spot, just by changing upper/lower values, and tick mark settings. I’ll remove some of general flexibility, instead adjusting things to let me use more of the gauge face, and define where on the gauge face things are displayed, making overlapping gauges easier.

This will also give me a chance to get visual object cached, so I don’t have to redraw everything on a device rotate. Right now, any orientation change simply calls the main “get weather” again. I’m going to split that into an asynchronous “get weather”, and a “show weather” that simply displays the last received values, when I get some time.

But, before I do that last bit of cleanup, I have one more detail screen I want to do. I’d like to be able to use the Nook as a desktop weather station that I can see from a distance. Gauges are pretty, but not that good for seeing the detail at a distance, so I’ll do a more attractive weather screen with a clock, and likely a rotation of the information from all (or a subset of) the weather stations we’re looking at.

Here’s a picture of the phone screen with the overlapping gauges, unfortunately, Android doesn’t provide a built-in screen capture, I can do it on my Nook, since I’m running a custom OS which runs on that device, but I’m keeping my DroidX unrooted and stock (for now):