android fill graphics path

How to fill a Path in Android with a linear gradient?

Given a closed Path object result is like this:

enter image description here

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)
// 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));