studio poner misma linearlayout linea elementos ejemplos dinamico caracteristicas botones amontonados alinear android layout relativelayout

android - poner - Cómo establecer parámetros de diseño RelativeLayout en código no en xml



poner dos botones en la misma linea android (5)

Por ejemplo, quiero agregar 3 botones en la pantalla uno alinear a la izquierda, uno alinear el centro, el último alinear a la derecha

¿Cómo puedo configurar su diseño en código, no en XML?


¿Qué tal si extraes los parámetros de diseño de la vista en sí misma si la creaste?

$((RelativeLayout)findViewById(R.id.imageButton1)).getLayoutParams();


Algo como esto..

RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.widget43); // ListView listView = (ListView) findViewById(R.id.ListView01); LayoutInflater inflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // View footer = inflater.inflate(R.layout.footer, null); View footer = LayoutInflater.from(this).inflate(R.layout.footer, null); final RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1); footer.setLayoutParams(layoutParams);


Espero que el siguiente código ayude. Creará un botón Editar Texto y un botón Iniciar sesión. Ambos se colocaron relativamente. Todo hecho en MainActivity.java.

package com.example.atul.allison; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RelativeLayout; import android.widget.Button; import android.graphics.Color; import android.widget.EditText; import android.content.res.Resources; import android.util.TypedValue; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Layout RelativeLayout atulsLayout = new RelativeLayout(this); atulsLayout.setBackgroundColor(Color.GREEN); //Button Button redButton = new Button(this); redButton.setText("Log In"); redButton.setBackgroundColor(Color.RED); //Username input EditText username = new EditText(this); redButton.setId(1); username.setId(2); RelativeLayout.LayoutParams buttonDetails= new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT ); RelativeLayout.LayoutParams usernameDetails= new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT ); //give rules to position widgets usernameDetails.addRule(RelativeLayout.ABOVE,redButton.getId()); usernameDetails.addRule(RelativeLayout.CENTER_HORIZONTAL); usernameDetails.setMargins(0,0,0,50); buttonDetails.addRule(RelativeLayout.CENTER_HORIZONTAL); buttonDetails.addRule(RelativeLayout.CENTER_VERTICAL); Resources r = getResources(); int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200,r.getDisplayMetrics()); username.setWidth(px); //Add widget to layout(button is now a child of layout) atulsLayout.addView(redButton,buttonDetails); atulsLayout.addView(username,usernameDetails); //Set these activities content/display to this view setContentView(atulsLayout); } }


Solo un ejemplo básico:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); Button button1; button1.setLayoutParams(params); params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.RIGHT_OF, button1.getId()); Button button2; button2.setLayoutParams(params);

Como puede ver, esto es lo que tiene que hacer:

  1. Crea un objeto RelativeLayout.LayoutParams .
  2. Use addRule(int) o addRule(int, int) para establecer las reglas. El primer método se usa para agregar reglas que no requieren valores.
  3. Establezca los parámetros a la vista (en este caso, a cada botón).

RelativeLayout layout = new RelativeLayout(this); RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); layout.setLayoutParams(labelLayoutParams); // If you want to add some controls in this Relative Layout labelLayoutParams = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); labelLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); ImageView mImage = new ImageView(this); mImage.setBackgroundResource(R.drawable.popupnew_bg); layout.addView(mImage,labelLayoutParams); setContentView(layout);