web-dev-qa-db-ja.com

中央のテキストAndroidボタン

私の質問はとても簡単です。 Androidのボタンの中央にテキストを配置するにはどうすればよいですか?私はパディングを0に設定し、重力を中央に設定しようとしましたが、テキストを水平に中央に配置しても垂直ではないという結果を実行しました。テキストは少し下に移動します。

<Button
    Android:id="@+id/btnSame"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center"
    Android:layout_marginBottom="10dip"
    Android:layout_marginLeft="10dip"
    Android:layout_marginRight="10dip"
    Android:background="@drawable/layout_button_different"
    Android:gravity="center_vertical|center_horizontal"
    Android:height="30dp"
    Android:padding="0dip"
    Android:text="@string/equals"
    Android:textColor="@drawable/layout_button_different"
    Android:textSize="50dp"
    Android:width="70dp" />

私も関連する:活動中に私はこれを行います:

btnEquals.setCompoundDrawablesWithIntrinsicBounds(null,getResources().getDrawable(R.drawable.up2), null, null);
btnEquals.setPadding(0, 5, 0, 0);
btnEquals.setTextSize(15);

これは動作しますが、この後、これを設定します:

btnEquals.setCompoundDrawables(null, null, null, null);
btnEquals.setPadding(0, 0, 0, 0);

結果は、垂直方向の配置が不適切です。

24
dieters

選択したサイズのため、既存のレイアウトではテキストを中央に配置することはできません。ボタンの高さを30dpに設定し、textSizeが50dpであり、何らかの理由でAndroidはそれを処理できず、テキストを中央に配置できません。ボタンを大きくしたり、テキストを小さくしたりすると、センタリングが機能することがわかります。

18
mah

これは非常に簡単です、あなたはこれを置くことができます:

Android:textAlignment="center"
38
Cabezas

考慮すべき3つのシステムがあります。 XMLレイアウトデザイナー、シミュレーター、および実際の電話。 gravity = "center"を指定すると、ボタン内のテキストは次のようになります。 xmlレイアウトデザイナーでは、左端の文字がボタンの中央にあるように見えますが、残りの文字は右側にあります。 (正しくないように見えます)シミュレーターでは、テキストは中央によく表示されます。 (正しい)電話では、テキストは中央によく表示されます。 (正しい)

1
user2712329

SetPaddingで負の数を使用することもできます。これは、フォントが大きくボタンが小さい場合に役立ちます。また、中心から外れている場合は、上部または下部をより負の数に設定してみてください。

0
uowaep