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.

  • Wie lade ich Sprite Blatt mit 5 Zeilen und 5 Spalten Draufsicht in Android?
  • Android Hide Navigationsleiste / Aufenthalt im immersiven Modus mit Soft Keyboard Aussehen
  • OnAttach (Aktivität) veraltet: wo kann ich überprüfen, ob die Aktivität Callback-Schnittstelle implementiert
  • Android DownloadManager Fortschritt
  • Java.lang.IllegalArgumentException: Rect sollte sich mit den Grenzen des Kindes schneiden
  • Material Design - linke Ränder für Action Bar Titel und Inhalt stimmen nicht überein
  • Wie zeigt man die Soft Keyboard von einem Service an?
  • Aktivieren / deaktivieren Sie das Android-Gerät
  • ShareActionProvider nicht anklickbar und nicht korrekt auf dem Rendering rendern
  • Sqlite Fügen Sie Spalte in Tabelle an einer bestimmten Position (Android)
  • Wie analysieren eingehende SMS auf Android?
  • Wie man Tabs programmatisch in android aus Fragment schaltet?
  • 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.