Ajuste del tamaño de los botones en porcentaje

Eche un vistazo al siguiente código

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".HomeScreen" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="*" android:layout_alignParentTop="true" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </TableRow> </TableLayout> </RelativeLayout> 

Esto genera la siguiente salida.

introduzca la descripción de la imagen aquí

Pero esto no es lo que necesito. Necesito estos 12 botones para llenar toda la pantalla, mantener espacios iguales entre sí y ser igual en tamaño también. No necesito fijar un tamaño fijo hight = 100, anchura = 100, en cambio, debe ajustar el tamaño según el tamaño de pantalla del dispositivo. Esto significa que cada botón podría tener un 8.3% de espacio en la pantalla (100/12 = 8.3).

Lo intenté estableciendo la altura de cada botón en 0dp y añadiendo el android:layout_weight = 0.083 . Pero esto no funcionó porque ningún botón fue mostrado después de esto.

¿Cómo puedo hacer esto? Por favor ayuda.

Intente el diseño siguiente. He cambiado algunos valores del peso y he hecho la altura del botón como fill_parent

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".HomeScreen" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="*" android:weightSum="4" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="Button" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="Button" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" > <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> <Button android:id="@+id/button6" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" > <Button android:id="@+id/button7" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> <Button android:id="@+id/button8" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> <Button android:id="@+id/button9" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" > <Button android:id="@+id/button10" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> <Button android:id="@+id/button11" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> <Button android:id="@+id/button12" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight=".3" android:text="Button" /> </TableRow> </TableLayout> </RelativeLayout> 

Esto está trabajando en mi dispositivo. ¡Espero que esto funcione para u también!

introduzca la descripción de la imagen aquí

No puedes tener un diseño dinámico que quieras dentro del xml ..

En tu actividad / fragmento donde cargas el layout .. tienes que configurar la altura de tableRow dependiendo del tamaño de la pantalla

Para obtener la pantalla puede utilizar

  DisplayMetrics metrics = new DisplayMetrics(); Activity aActivity = (Activity) container.getContext(); aActivity.getWindowManager().getDefaultDisplay().getMetrics(metrics); screen_Width = metrics.widthPixels; screen_Height = metrics.heightPixels; 

Ahora puede configurar cada ancho de fila de la tabla como totalHeight/NoOFRows - padding.

  tableRow.setMinimumHeight(calculatedHeight); 

cálculo similar se puede hacer a la anchura para hacerlos rellenar correctamente y mantener el mismo tamaño

  • Android: Cómo iniciar sesión en la página web mediante programación, mediante HttpsURLConnection
  • SMS raw pdu en Android
  • Android VMD MySQL insertar y mostrar el diálogo
  • ¿Puedo comprobar si dos aplicaciones de Android están firmadas con la misma clave?
  • Cómo obtener el comportamiento del usuario en el teléfono Android (Historial de aplicaciones, Historial de exploraciones, etc.)
  • ¿Cómo se obtiene el "Nombre de dispositivo" definido por el usuario en android?
  • Adición de carpetas de java al proyecto de estudio de Android
  • ¿Acelerando el cifrado?
  • Se filtró un objeto SQLiteConnection para la base de datos. Por favor, corrija su aplicación
  • Manejo multitouch en libgdx
  • ¿Debo aprender Java antes de aprender Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.