私の質問はとても簡単です。 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);
結果は、垂直方向の配置が不適切です。
選択したサイズのため、既存のレイアウトではテキストを中央に配置することはできません。ボタンの高さを30dp
に設定し、textSizeが50dp
であり、何らかの理由でAndroidはそれを処理できず、テキストを中央に配置できません。ボタンを大きくしたり、テキストを小さくしたりすると、センタリングが機能することがわかります。
これは非常に簡単です、あなたはこれを置くことができます:
Android:textAlignment="center"
考慮すべき3つのシステムがあります。 XMLレイアウトデザイナー、シミュレーター、および実際の電話。 gravity = "center"を指定すると、ボタン内のテキストは次のようになります。 xmlレイアウトデザイナーでは、左端の文字がボタンの中央にあるように見えますが、残りの文字は右側にあります。 (正しくないように見えます)シミュレーターでは、テキストは中央によく表示されます。 (正しい)電話では、テキストは中央によく表示されます。 (正しい)
SetPaddingで負の数を使用することもできます。これは、フォントが大きくボタンが小さい場合に役立ちます。また、中心から外れている場合は、上部または下部をより負の数に設定してみてください。