Given a closed Path object result is like this:
Although that is a rectangle I'm looking for something which works with any closed Path.
While steelbytes' answer will probably give you more control over the individual sections of the gradient, you can do it without the path:
Paint m_Paint = new Paint();
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
// start at 0,0 and go to 0,max to use a vertical
// gradient the full height of the screen.
m_Paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE, Shader.TileMode.MIRROR));
canvas.drawPaint(m_Paint);
}