Disposición de respuesta de Android

Estoy construyendo la aplicación (calculadora). Utilizo la disposición de la tabla con los botones adentro. Parece perfecto en la pantalla de Samsung Galaxy II, sin embargo, se ve muy mal en pantallas más grandes. La altura de los botones es muy pequeña. ¿Cómo puedo estirar los botones en pantallas más grandes?

El XML de presentación es el siguiente:

<ScrollView xmlns:android="http://schemas.an xmlns:tools="http://schemas.android.com/ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="right" android:paddingBottom="@dimen/activity_v android:paddingLeft="@dimen/activity_hor android:paddingRight="@dimen/activity_ho android:paddingTop="@dimen/activity_vert tools:context=".MainActivity" > <TableLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="right" > <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="0dp"> <Button android:id="@+id/Button01" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_pare android:text="@string/button_1" android:visibility="visible" /> <Button android:id="@+id/Button02" android:layout_width="0dp" android:layout_weight="0.34" android:layout_height="fill_pare android:text="@string/button_2" <Button android:id="@+id/Button03" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_pare android:text="@string/button_3" </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="match_parent" android:layout_height="0dp" > <Button android:id="@+id/Button04" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_parent" android:text="@string/button_4" /> <Button android:id="@+id/Button05" android:layout_width="0dp" android:layout_weight="0.34" android:layout_height="fill_parent" android:text="@string/button_5" /> <Button android:id="@+id/Button06" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_parent" android:text="@string/button_6" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="match_parent" android:layout_height="0dp" > <Button android:id="@+id/Button07" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_pare android:text="@string/button_7" <Button android:id="@+id/Button08" android:layout_width="0dp" android:layout_weight="0.34" android:layout_height="fill_pare android:text="@string/button_8" <Button android:id="@+id/Button09" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_pare android:text="@string/button_9" </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="match_parent" android:layout_height="0dp" > <Button android:id="@+id/ButtonUndo" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_pare android:text="@string/button_und <Button android:id="@+id/Button00" android:layout_width="0dp" android:layout_weight="0.34" android:layout_height="fill_pare android:text="@string/button_0" <Button android:id="@+id/ButtonCheck" android:layout_width="0dp" android:layout_weight="0.33" android:layout_height="fill_pare android:text="@string/button_che </TableRow> <TableRow android:id="@+id/ResTable" android:layout_width="match_parent" android:layout_height="0dp" > <TableLayout android:layout_weight="0.3" android:id="@+id/table_score_cor <TableRow android:id="@+id/tableRow5_11" android:layout_width="wrap_conte android:layout_height="fill_pare android:gravity="center_vertical <TextView android:id="@+id/labelCorrec android:layout_width="wrap_c android:layout_height="fill_ android:ems="4" android:text="@string/correc android:gravity="center_vertic android:textSize="15sp" /> </TableRow> <TableRow android:id="@+id/tableRow5_12" android:layout_width="wrap_conte android:layout_height="0dp" > <TextView android:id="@+id/scoreCorr android:layout_width="0dp" android:layout_height="fil android:ems="4" android:gravity="center_ve android:text="" android:textSize="30sp" android:textStyle="bold" / </TableRow> </TableLayout> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content android:layout_height="fill_parent android:layout_weight="0.3" android:contentDescription="@strin android:fitsSystemWindows="true" android:scaleType="fitCenter" android:src="@drawable/trees" /> <TableLayout android:id="@+id/table_score_inc android:layout_weight="0.3"> <TableRow android:id="@+id/tableRow5_21" android:layout_width="wrap_conte android:layout_height="fill_pare android:gravity="center_vertical <TextView android:id="@+id/labelIncorrec android:layout_width="wrap_con android:layout_height="fill_pa android:ems="4" android:text="@string/incorrec android:gravity="center_vertic android:textSize="15sp" /> </TableRow> <TableRow android:id="@+id/tableRow5_22" android:layout_width="wrap_conte android:layout_height="fill_pare <TextView android:id="@+id/scoreInco android:layout_width="0dp" android:layout_height="fil android:ems="4" android:gravity="center_ve android:text="" android:textSize="30sp" android:textStyle="bold" / </TableRow> </TableLayout> </TableRow> <TableRow android:id="@+id/tableRow_menu" android:layout_width="wrap_content android:layout_height="fill_parent <Button android:id="@+id/ButtonPlus" android:layout_width="0dp" android:layout_height="38dp" android:layout_weight="0.25" android:text="@string/action_p <Button android:id="@+id/ButtonMinus" android:layout_width="0dp" android:layout_height="38dp" android:layout_weight="0.25" android:text="@string/action_m <Button android:id="@+id/ButtonMult" android:layout_width="0dp" android:layout_height="38dp" android:layout_weight="0.25" android:text="@string/action_m <Button android:id="@+id/ButtonDivide" android:layout_width="0dp" android:layout_height="38dp" android:layout_weight="0.25" android:text="@string/action_d </TableRow> </TableLayout> </ScrollView> 

Por encima de todo, es necesario crear diferentes diseños / dibujos para apoyar todas las pantallas. Depende de su requisito, por ejemplo, si desea incluir 2 botones en pantalla pequeña y 4 botones en pantallas grandes, entonces obvio que tiene que crear diferentes diseños.

Si desea mostrar el mismo número de botones en todas las pantallas entonces le sugiero que prepare diferentes conjuntos de imágenes / drawables e incluirlos en su proyecto. Aquí no es necesario hacer nada más que colocar imágenes en carpetas dibujables en particular.

Una cosa más, si es un fondo simple, entonces puede crear imagen de 9 parches para que se pueda estirar con cualquier tamaño que desee o compatible con su dispositivo.

Más estudio:

  1. http://developer.android.com/guide/practices/screens_support.html
  2. Soporte de diferentes tamaños de pantalla
  3. Soportando Diferentes Densidades
  4. Implementación de flujos adaptativos de interfaz de usuario

Le recomiendo que lea esta documentación http://developer.android.com/guide/practices/screens_support.html .

O en este artículo "Diseño para varias pantallas" http://developer.android.com/training/multiscreen/index.html

  • Rellene TableLayout con android: layout_weight de forma programática
  • ListView o TableLayout?
  • TableRow no envuelve TextView
  • Las filas añadidas dinámicamente en tablelayout no son visibles
  • Adaptador personalizado para la vista de lista
  • ¿Cómo funciona android: shrinkColumns y android: stretchColumns?
  • Cómo crear una tabla en Android con varias columnas?
  • Línea de encabezado de TableLayout de Android
  • Cómo agregar editText.addTextChangedListener en TableLayout
  • implementar android: stretchColumns = "*" programatically en Android
  • Problemas de la suma de peso de TableLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.