Items in a FrameLayout or RelativeLayout will overlap (unless you specifically position something above/below/left-of/right-of something else inside a RelativeLayout). Your best bet for what you want is to make a RelativeLayout with a background image of your photo (or an ImageView as its first child) and then position your TextViews and shape Drawables as children of the RelativeLayout as well. You could resort to doing this all with a custom view and drawing straight to the canvas yourself, but I wouldn't recommend that unless you really need to.
Also see this SO post about overlapping images.