I see enough people with questions on setting up the sdk or eclipse or java or whatever so figured I'd make this its own post. Please note everything can be found here Android SDK | Android Developers and this is almost a copy/paste, but people keep asking so figured I'd answer :-)
This is everything you need to set up an environment to program Android apps. If any steps don't work or you still have problems feel free to ask questions.
Google SDK (put it anywhere, i use C:\android-sdk\
Eclipse (galileo distro, can use anyone you like really, just start here it's the most popular)
Eclipse IDE for Java EE Developers | Eclipse Packages
ADT Plugin for Eclipse:
While in Eclipse go to "Help -> Install New Software". Click "Add" and copy in https://dl-ssl.google.com/android/eclipse/ You should see Developer Tools pop in the the box. Check that and and click Next and go through the general install motions.
At this point you need to set up Eclipse to point to the Android SDK.
While in Eclipse go to "Window -> Preferences" and click on Android. Put in the location of where you unzipped the android SDK.
The last step should be setting up an emulator
While in Eclipse go to "Window -> Android SDK and AVD Manager". There's probably a device set up already, but you can click Add and add as many different devices as you want.
At this point you should have everything set up to start writing code and learning all the fun stuff like broadcast receivers and what the hell an adapter is.
If you don't know where to go from here check out the guides Google has.
Android FAQs | Android Developers
And buy some books on Java and Android: Wrox, Apress, and Commonsware put out excellent books. Commonsware has a yearly subscription ($40) where you get constant updates (and the entire book) in pdf form, with tons of sample code. Great resource.