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
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