This answer describes how to make a SurfaceView with a transparent background.
However it requires setZOrderOnTop(true) to be called on the SurfaceView, which unsurprisingly puts the SurfaceView on top of the other views.
This isn't exactly what I want. Given Views A, C, and SurfaceView B I would like to order the views as A behind B behind C.
If B weren't a SurfaceView with a transparent background this would simply be:
<RelativeLayout>
<ViewA>
<ViewB>
<ViewC>
</RelativeLayout>
Is it possible to achieve this when B is a SurfaceView with a transparent background?