Sorry, you can't do this -- because surface views are very special and not really views (the surface is a separate window Z-ordered with your own), their Z-ordering does not match your views. A surface view is a big, heavy object; you are not intended to treat SurfaceView like a regular view in this way.
As far as transparency, the surface is transparent if you make its pixel format transparent. It's your surface, you can do with it what you want. The default is to be the same pixel format as the screen, since that is the most efficient and it is very rare for someone to want a transparent surface view.
The way you really are intended to do this is to own the surface, and draw all your compositing in there. So you would just have one surface view that you are updating in the places where either the background or overlay is changing. To be honest, I think you are going to get better performance if you do it this way anyway, especially if you use OpenGL.
For simple overlays, one thing that is reasonable to do is to stick the SurfaceView in a frame layout, Z-ordering it below other -regular- views that contain the overlay. There is an example in ApiDemos of this.
Android framework engineerhac...@android.com
Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them.