Just wanted to add that if you use the SixAxis app (cost $2 but it is sooooo worth it) you can make any app work with your wireless (or maybe wired too) Dual Shock 3 or Sixaxis controller. Yes, this includes games with NO controller support at all!
Here's a post I made that briefly discusses it:
http://forums.androidcentral.com/google-nexus-7-tablet-forum/196029-must-have-apps-2.html#post2030221
I was able to play Captain America using the D-pad and this is mostly a swipe-gesture-based game. I made the UP DOWN LEFT RIGHT swipes work with the controller's D-pad and it worked perfectly (even better than using your finger!).
Unfortunately, the game Captain America, while fun, is buggy as all hell, so be careful if you buy it. Seems like you have to uninstall and reinstall each and every time you wish to replay the game which include a 750MB download install each time as well (yeah, seriously). Even though the download screen says it's 250MB the Nexus 7 says the install file is 750 MB!
Edit: Here's a picture and a quick description that explains how a swipe-based game like Captain America works on your controller.
The controller is 'interacting' with the touchscreen making your Android device think your finger is touching it. The D-pad is creating a swiping motion, making the game think that you're sliding your finger on the screen. The start button pauses the game, the triangle button unpauses, while circle button makes you stop and square button throws your shield to attack enemies. And this is how you can make a large number of games work with your controller. Keep in mind not all games will work and you should think about how the game is played in advance to make sure it is properly functional in this way.
And finally tilt controls can not be emulated yet on a controller with the sixaxis app.