Can you spot what is going on in that screenshot? ActionBar is the rectangular area at the top of your Honeycomb app where you can put things like tabs, menus, drop down lists, etc. But for all the styling you can apply to your ActionBar, it's still a rectangle. If you want to add a bit of flare to your ActionBar and break out of that rectangular box. Here's a neat trick.
Your visual designer just sent you the background resource for your apps ActionBar, and it's got some irregularities to it's shape, with some transparency and they expect your frame content to seamlessly scroll behind your ActionBar. Here's what you do.
Step 1: Send it back and tell them the ActionBar is a rectangle! This rarely works.
Step 2: Bring the image into your favorite image editing software (I use Gimp). Now you want to cut the image horizontally and save the top (rectangular) portion in one image file, and the bottom irregular portion in a second image file.
ActionBar header top (header_top.png) |
ActionBar header bottom (header_bottom.png) |
(res/values/styles.xml)
Step 4: Modify your content layout file to include the bottom part of the ActionBar as an ImageView and use android:layout_alignParentTop="true" to make sure it is "attached" to the top of your parent view and looks like it's part of your ActionBar. Note that your parent layout will need to be a RelativeLayout in order for this to work.
Now, if you run your app and you can't see the bottom part of the ActionBar that you just added, you probably put your ImageView before your content in your layout. Even though you've told your ImageView to alignParentTop, if you create it before your content view, it will be covered up and you actually want it to be drawn last in your view. So move it to be the last view in your layout. That should do it! Check out your awesome irregular ActionBar!
(res/layout/main.xml)
Credit to my designer Stefan for the awesome idea!