2011-02-21, 05:11
Hi guys,
With iPad and other tablets comes possibilities for presenting your skin in a variety of different aspect ratios, which makes for complications to the skin engine.
This trac ticket takes care of some of it by allowing you to specify resolutions, but I think it's solving the wrong problem (or at least isn't a complete solution to the problem).
I've been chatting with Jezz_X and he says for simple things like displaying the same skin in 16:9 or 4:3, he's happy if you display the same thing, basically just positioning differently. Simple example is with a header, middle and footer, the positions of these would change when switching between 4:3 and 16:9, but the actual heights etc. wouldn't - i.e. you'd simply end up with a larger gap between items on the screen. Similarly, for rotation on an iPad, most dialogs fit into the center of the screen, so in both orientations you're displaying the exact same thing, just positioned differently as x+y coords are swapped.
So, I'm thinking of ways to accommodate this. One idea is to have a "layout" control that works a bit like an auto-adjusting table - essentially it gives you panels (each of which is a control group) that automatically reposition themselves - so in the above example you'd have a header panel that's anchored to the top of the screen, a footer panel anchored to the bottom, and the middle content anchored to the center of the screen. Actual content inside the panels would remain unscaled - just the positions would change when switching from (say) 1280x720 to 1280x960. We could even make it so that things would scale only if they have to (eg if you make the vertical dimension too small so that the unscaled bits inside each panel would overlap).
Another idea is to allow lists to be dynamically sized in the same way - eg it might make more sense that when we know how big our middle "panel" is, we mayaswell make the list take up that space without changing the size of each item (obviously this might have implications for exactly how we work this sizing out, if you didn't want half an item to display etc.)
How to do all this I'm not exactly sure yet. What do you guys think? The goal is to make it easier for skins to take care of differing aspect ratios that will inevitably be coming out with tablets and the like. Ofcourse, you don't have to care about it necessarily, but given the number of folk with iPads and the number of Android tablets coming out, it might be something to consider!
Cheers,
Jonathan
With iPad and other tablets comes possibilities for presenting your skin in a variety of different aspect ratios, which makes for complications to the skin engine.
This trac ticket takes care of some of it by allowing you to specify resolutions, but I think it's solving the wrong problem (or at least isn't a complete solution to the problem).
I've been chatting with Jezz_X and he says for simple things like displaying the same skin in 16:9 or 4:3, he's happy if you display the same thing, basically just positioning differently. Simple example is with a header, middle and footer, the positions of these would change when switching between 4:3 and 16:9, but the actual heights etc. wouldn't - i.e. you'd simply end up with a larger gap between items on the screen. Similarly, for rotation on an iPad, most dialogs fit into the center of the screen, so in both orientations you're displaying the exact same thing, just positioned differently as x+y coords are swapped.
So, I'm thinking of ways to accommodate this. One idea is to have a "layout" control that works a bit like an auto-adjusting table - essentially it gives you panels (each of which is a control group) that automatically reposition themselves - so in the above example you'd have a header panel that's anchored to the top of the screen, a footer panel anchored to the bottom, and the middle content anchored to the center of the screen. Actual content inside the panels would remain unscaled - just the positions would change when switching from (say) 1280x720 to 1280x960. We could even make it so that things would scale only if they have to (eg if you make the vertical dimension too small so that the unscaled bits inside each panel would overlap).
Another idea is to allow lists to be dynamically sized in the same way - eg it might make more sense that when we know how big our middle "panel" is, we mayaswell make the list take up that space without changing the size of each item (obviously this might have implications for exactly how we work this sizing out, if you didn't want half an item to display etc.)
How to do all this I'm not exactly sure yet. What do you guys think? The goal is to make it easier for skins to take care of differing aspect ratios that will inevitably be coming out with tablets and the like. Ofcourse, you don't have to care about it necessarily, but given the number of folk with iPads and the number of Android tablets coming out, it might be something to consider!
Cheers,
Jonathan