How to vertically align text in a button with a background drawable?

Posted by neutrino on Stack Overflow See other posts from Stack Overflow or by neutrino
Published on 2010-05-06T09:23:38Z Indexed on 2010/05/06 9:28 UTC
Read the original article Hit count: 255

Filed under:
|
|
|

I had a simple button set up with a background image defined like

android:background="?attr/button"

where ?attr/button was a reference to a simple 9-patch png. Everything worked fine, text in the button was aligned correctly.

Then I needed to have a different background for a pressed state of the button. So I changed that to

android:background="@drawable/state_button"

where @drawable/state_button is an xml with the following states

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
        android:drawable="@drawable/button_pressed" /> <!-- focused -->
    <item android:drawable="@drawable/button" /> <!-- default -->
</selector>

And after that I can't align the text properly. If I put android:gravity="center_vertical" the text is drawn about 1/4 of the button height from the top.

I double-checked my 9-patch images, everything seems fine with them. And I also tried having regular pngs for the background, it also doesn't change anything.

© Stack Overflow or respective owner

Related posts about android

Related posts about button