A way to organize and simplify your XML layouts is to use view groups. You can use them to hold children views and make reusable components. You can also extend them to add your own behavior.
Here are some of the most commonly used options.
FrameLayout
This is the simplest of the view groups. It's designed to hold one child view. This layout is often used as a holder for dynamic fragments.
LinearLayout
As the name implies, with this name you lay view items out in a line, either vertically or horizontally.
RelativeLayout
With this view group, you can lay out elements in a relative fashion. For example, place the star to the right of the circle and the heart below the circle.
GridLayout
With this view group, you can lay out similar elements in a grid fashion. This available in later OS versions and has been back ported for older OS versions.
When your views start to get complicated, you can break it up using view stubs. This can be used to lazily inflate views at runtime.
More information here: http://developer.android.com/reference/android/view/ViewStub.html