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.
- Compruebe si String en String está en ArrayList <string>
- Dibujable == dibujable?
- Obtención de datos de lista de elementos de una lista
- Desea enviar datos de cadena hexadecimal en java
- Publicar en Facebook Fan página a través de la aplicación
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.
- varias clases en un único archivo físico en android
- Extraer números de una cadena alfanumérica usando android
- Prácticas recomendadas de Android SharedPreferences
- ¿Cuál es la diferencia entre los métodos SOAP 1.1, SOAP 1.2, HTTP GET y HTTP POST para Android?
- Java File.lastModified devuelve cambios de valor si cambia el huso horario?
- Detección de una larga pulsación con Android
- JSON válido sigue recibiendo error de análisis
- Utilizar mi propia aplicación Android / apk como lanzador / reemplazo de pantalla de inicio
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!
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
- Cambiar la lista seleccionada ver ítem problema de la imagen en android
- usando AppCompat-21 en los fallos del dispositivo Lollipop