Programmieren Sie die Breite des Buttons in android

Wie man die Breite einer Taste programmgesteuert ändert. Ich kann die Höhe ändern, aber die Breite ändert sich nicht. Im Folgenden ist mein Code-Snippet

private void createButton(final String label) { Button button = new Button(this); button.setText(label); button.setWidth(10); button.setHeight(100); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); mMenuContainer.addView(button, mMenuItemLayoutParamters); } 

Aber die Breite der Schaltfläche nimmt die Breite des Bildschirms ein.

  • Übergeben von Objekten in Fragmente
  • Logcat aus Java-Perspektive entfernen
  • Wie kann ich wissen, wann meine Benachrichtigung über Clear Button gelöscht wird?
  • Schalten Sie androide x86 Bildschirmauflösung
  • Android-Bildschirm Bildschirmgröße
  • Wie man Gedächtnis mit Android-Studio zu analysieren
  • Android Zwei Finger Drehung
  • Wie kann ich Google Play-Dienste in einem Maven-Projekt verwenden?
  • Android Kamera 2 Api
  • Theme / Style wird nicht angewendet, wenn der Incater mit ApplicationContext verwendet wird
  • Zeichnungswähler funktioniert nicht in Jelly Bean
  • IDTech Unimag Card Swiper auf Android
  • 6 Solutions collect form web for “Programmieren Sie die Breite des Buttons in android”

    button.setLayoutParams(new LinearLayout.LayoutParams(10, 100));

    Sollte für dich arbeiten

    Es gibt ein ehrfürchtiges Beispiel online für dieses: überprüfen Sie dieses


    Sie sollten LayoutParams der ViewGroup , die Ihre View enthält. Das heißt, wenn dein Knopf in RelativeLayout , solltest du RelativeLayout.LayoutParams

    Du kannst es so machen.

     LinearLayout.LayoutParams params = button.getLayoutParams(); params.width = 100; button.setLayoutParams(params); 

    Aber stellen Sie sicher, dass Sie dies tun, nach dem Hinzufügen Ihrer Schaltfläche zu einem Elternteil. Und LinearLayout.LayoutParams wird verwendet, wenn Eltern ein LinearLayout und wenn Elternteil RelativeLayout verwenden RelativeLayout.LayoutParams .

    kann dies tun

      int width= (int)getResources().getDimension(R.dimen.button_width); int heigth= (int)getResources().getDimension(R.dimen.button_heigth); ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(width, heigth); button.setLayoutParams(layoutParams); 

    Verwenden Sie nur mMenuContainer.addView(button);

    Ich habe es gelöst:

     //ImageButton creation final ImageButton server_icon_button=new ImageButton(getApplicationContext()); //setting background image in drawable server_icon_button.setBackgroundResource(R.drawable.bonsai); //After adding ImageButton to the parent i done this server_icon_button.getLayoutParams().height=180; server_icon_button.getLayoutParams().width=100; 

    Ich hoffe diese Hilfe.

    In meinem Fall verwende ich AppCompatImageButton (und AppCompat). Es stellt sich heraus, dass, wenn ich Dichte angepasst Bilder in den verschiedenen zeichen Folien: drawable-ldpi, drawable-mdpi, drawable-hdpi, etc .. dann die Schaltfläche wird nicht skalieren. Stattdessen musste ich für jeden Knopf eine Zeichenkette in Zieh-Nodpi setzen . Stellen Sie sicher, dass das Zieh-Nodpi-Button-Bild von der größten Größe ist, die Sie benötigen. Android wird nicht skalieren die Schaltfläche Größe bis; Allerdings kann es die Größe nach unten skalieren. Ich habe so einen Button in XML erstellt:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:meter="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content"> <android.support.v7.widget.AppCompatImageButton android:id="@+id/button" style="@style/ButtonStyle" android:baselineAlignBottom="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="0dp" android:minWidth="0dp" app:srcCompat="@drawable/button_selector" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="@string/button" android:focusable="true"> </RelativeLayout> <!-- styles.xml --> <style name="ButtonStyle" parent="MyAppTheme"> <item name="android:scaleType">centerInside</item> <item name="android:adjustViewBounds">true</item> <item name="colorControlHighlight">@color/buttonColorPressed</item> <item name="colorButtonNormal">@color/buttonColor</item> </style> <!-- v21/styles.xml --> <style name="TargetButton" parent="MyAppTheme"> <item name="android:scaleType">centerInside</item> <item name="android:adjustViewBounds">true</item> <item name="colorControlHighlight">@color/buttonColorPressed</item> <item name="colorButtonNormal">@color/buttonColor</item> <item name="android:elevation">@dimen/button_elevation</item> </style> <!-- drawable/button_selector.xml --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/button"/> </selector> <!-- drawable/button.xml --> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/ic_button" android:gravity="center" /> <!-- drawable/button_pressed.xml --> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/ic_button_pressed" android:gravity="center" /> 

    Als nächstes, in onCreate, wenn Sie die Schaltfläche abrufen, rufen Sie adjustButtonSize (was ich in meiner Basisklasse):

      mButton = (AppCompatImageButton) findViewById(R.id.button); adjustButtonSize(mButton); public void adjustButtonSize(AppCompatImageButton button) { DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int width = displayMetrics.widthPixels; int height = displayMetrics.heightPixels; ViewGroup.LayoutParams params = button.getLayoutParams(); params.height = height / 10; // 10% params.width = ((width * 20) / 100); // 20% button.setLayoutParams(params); } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.