I have to create a colored button with gradient fill(starting from the middle of the button along Y axis). If I set the background property of the button to the color I want
How to set background color of a View
You will need to define a custom StateListDrawable resource, cloned perhaps from the one Android uses for buttons by default, where you change the nine-patch images to be gradients. You might be able to define those gradients in XML, which would mean they would stretch nicely.