web-dev-qa-db-ja.com

コードからAndroidで本当に小さなボタンを作成するには?

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

button with caption "Save"

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

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

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

enter image description here

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

33
user898160

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

Android:minHeight="0dp"
Android:minWidth="0dp"

本当に小さなボタンを取得するには:

enter image description here

121

参考のために、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" />
9
Yoann Hercouet

あなたのコードでこれを試してください:

pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);
0
Boe-Dev

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

Android:layout_width="50dp" Android:layout_height="50dp"  

要件に応じて値を変更...

0