編集4:スペースを埋める大きなフォントを作成して解決しました。以下に掲載されている解決策を参照してください
編集3:述べた私の問題は解決できないという結論に達しました。問題は、フォントがjのようなディセンダーや大文字の上のウムラウトのためのスペースを残しているため、画像スペースを埋めないことです。さらに検索すると、明らかに私が必要としているネガティブパディングが未定義であることがわかりました。
1つの解決策は、画像スペース全体を埋めるカスタムフォントを作成することです。もう1つは、画像ボタンを使用するための以下の提案ですが、フォーカスの色の変更とプログラムの状態の基本画像の変更の両方が必要であるという私の追加の複雑さは、私がそれを理解できない点までその解決策を複雑にします。
Edit2:スクリーンショットを追加
編集:以下にドローアブルのコードを追加しました。
私はstackoverflowで見つけたすべての例とGoogleからのすべての回答を試しました。私はあきらめる前に昨夜少なくとも3時間を過ごしました。誰かが答えを知っていれば、私は確かにこれについていくつかの助けを使うことができます。
私はAndroidアプリにボタンを持っていますが、ボタンは非常に大きくすることしかできず、ボタン内のテキストは明るい日光の下で読み取れる必要があるため、大きくする必要があります。解決策は明らかです。テキストをボタンより1ピクセル小さくします。つまり、パディングを小さくします。android:paddingTop="-10sp"は何もしません。私は考えられるすべてを試しました。明確にするために、ボタン内のテキストの上部と下部とボタン自体の端との間にスペースをほとんど入れないようにします。
これが私のボタンの1つの例です:
<Button
android:id="@+id/buttonSetTgt"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textHeader"
android:layout_alignParentLeft="true"
android:background="@drawable/button_start"
android:textColor="@android:color/white"
android:onClick="onSetTgt"
android:paddingLeft="6sp"
android:paddingRight="6sp"
android:paddingTop="0sp"
android:paddingBottom="0sp"
android:text="◎"
android:textSize="@dimen/menu"
android:textStyle="bold" />
button_startには、いくつかの色と丸みを帯びた角の定義があります。
ゼロの上下にパディングが表示されますが、負の数ではうまくいかないため、0spまたは-10spは同等です。
ドローアブルのコードは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" >
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#f07304"/>
<corners android:radius="7dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#222222"/>
<corners android:radius="7dp"/>
</shape>
</item>