40

Android のデフォルトの Button クラスは、非常に大きなボタンを提供します。

キャプション付きボタン

周りには無駄なスペースがたくさんあります。ここで、テキスト/キャプションよりもわずかに大きい、非常に小さなボタンを作成したいと考えています。コードからこれを行う方法は?これまでのところ、次の方法を見つけましたが、それでもボタンが大きすぎて、スペースを浪費しすぎています。

A. res/layout に XML (smallbutton.xml) を作成します。

<?xml version="1.0" encoding="utf-8"?>

    style="?android:attr/buttonStyleSmall"
    android:text="color"
    android:padding="0dp"
    android:layout_margin="0dp"

    android:textSize="8dp"
    android:maxHeight="2dp"
    android:maxWidth="2dp"

/>

B. コードからこれを膨らませ、ビューに追加します。

Button pickBackColor = (Button) this.getLayoutInflater().inflate(R.layout.smalbutton,null);

...

LinearLayout linLayout = new LinearLayout(this);

linLayout.addView(pickBackColor);

ここでの問題は、ボタンがまだ大きすぎて、テキストの周囲 (左、右、上、下) のスペースを使いすぎていることです。

ここに画像の説明を入力

ボタンのサイズをさらに小さくする方法のヒントはありますか?

4

5 に答える 5

151

ボタンの高さと幅は最小限に抑えられています (通常、デフォルトでは 48 dp、それぞれ 64 dp)。だから追加

android:minHeight="0dp"
android:minWidth="0dp"

非常に小さなボタンを取得するには:

ここに画像の説明を入力

于 2013-01-08T10:16:02.177 に答える
11

参考までに、小さいボタンを定義する Android によって提供されるデフォルトのスタイルもあります。

style="?android:attr/buttonStyleSmall"

必要に応じて、このデフォルト スタイルを変更し、styles.xml ファイルでカスタム属性を定義することもできます。質問で説明されている変更を加えた例を次に示します。

<style name="MyButtonStyleSmall" parent="android:Widget.Button.Small">
    <!-- Customizations  -->
    <item name="android:minHeight">0dp</item>
    <item name="android:minWidth">0dp</item>
</style>

次に、XML で呼び出す必要があります。

<Button 
   android:id="@+id/small_button"
   android:text="@string/example"
   android:contentDescription="@string/example_desc"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   style="@style/MyButtonStyleSmall" />
于 2013-05-16T00:38:02.233 に答える
0

コードでこれを試してください:

pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);
于 2012-04-21T13:21:25.247 に答える
0
    <com.google.android.material.button.MaterialButton
        android:id="@+id/food_item_minus_button"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/custom_small_button_bg"
        android:drawableLeft="@drawable/ic_minus"
        android:paddingStart="6dp"
        android:paddingLeft="6dp" />
于 2020-10-20T05:58:36.127 に答える
0

.xmlファイルで...xmlファイルのlayout_heightとlayout_widthに小さな値を渡す必要があります...これを試してください。

android:layout_width="50dp" android:layout_height="50dp"  

必要に応じて値を変更します...

于 2012-04-21T12:25:04.163 に答える