Saltar al contenido

Tamaño del texto y diferentes tamaños de pantalla de Android

Solución:

@forcelain Creo que debe consultar este PDF de Google IO para el diseño. En ese pdf, vaya a la página No: 77 en la que encontrará cómo se sugiere usar dimens.xml para diferentes dispositivos de Android. Por ejemplo, consulte la estructura a continuación:

res/values/dimens.xml

res/values-small/dimens.xml

res/values-normal/dimens.xml

res/values-large/dimens.xml

res/values-xlarge/dimens.xml

por ejemplo, ha utilizado a continuación dimens.xml en valores.

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">18sp</dimen>
</resources>

En la carpeta de otros valores, debe cambiar los valores para el tamaño de su texto.

Nota: Como lo indica @espinchi, el pequeño, el normal, el grande y el xlarge han quedado obsoletos desde Android 3.2 a favor de lo siguiente:

Declaración de diseños de tableta para Android 3.2

Para la primera generación de tabletas con Android 3.0, la forma correcta de declarar diseños de tabletas era colocarlas en un directorio con el calificador de configuración xlarge (por ejemplo, res / layout-xlarge /). Para adaptarse a otros tipos de tabletas y tamaños de pantalla, en particular, tabletas de 7 “, Android 3.2 presenta una nueva forma de especificar recursos para tamaños de pantalla más discretos. La nueva técnica se basa en la cantidad de espacio que necesita su diseño (como 600 dp de ancho), en lugar de intentar que su diseño se ajuste a los grupos de tamaño generalizados (como grande o xlarge).

La razón por la que diseñar para tabletas de 7 “es complicado cuando se utilizan grupos de tamaño generalizados es que una tableta de 7” está técnicamente en el mismo grupo que un teléfono de 5 “(el grupo grande). Si bien estos dos dispositivos parecen tener un tamaño similar entre sí , la cantidad de espacio para la interfaz de usuario de una aplicación es significativamente diferente, al igual que el estilo de interacción del usuario. Por lo tanto, una pantalla de 7 “y 5” no siempre debe usar el mismo diseño. Para que puedas proporcionar diferentes diseños para estos Dos tipos de pantallas, Android ahora le permite especificar sus recursos de diseño en función del ancho y / o alto que está realmente disponible para el diseño de su aplicación, especificado en unidades dp.

Por ejemplo, una vez que haya diseñado el diseño que desea usar para dispositivos tipo tableta, puede determinar que el diseño deja de funcionar bien cuando la pantalla tiene menos de 600 ppp de ancho. Por lo tanto, este umbral se convierte en el tamaño mínimo que necesita para el diseño de su tableta. Como tal, ahora puede especificar que estos recursos de diseño deben usarse solo cuando haya al menos 600 dp de ancho disponible para la interfaz de usuario de su aplicación.

Debe elegir un ancho y diseñarlo como su tamaño mínimo, o probar cuál es el ancho más pequeño que admite su diseño una vez que esté completo.

Nota: Recuerde que todas las cifras utilizadas con estas API de nuevo tamaño son valores de píxeles independientes de la densidad (dp) y las dimensiones de su diseño también deben definirse siempre utilizando unidades dp, porque lo que le importa es la cantidad de espacio de pantalla disponible después del sistema. tiene en cuenta la densidad de la pantalla (en lugar de utilizar la resolución de píxeles sin procesar). Para obtener más información sobre píxeles independientes de la densidad, lea Términos y conceptos, anteriormente en este documento. Usando nuevos calificadores de tamaño

Las diferentes configuraciones de recursos que puede especificar en función del espacio disponible para su diseño se resumen en la tabla 2. Estos nuevos calificadores le ofrecen más control sobre los tamaños de pantalla específicos que admite su aplicación, en comparación con los grupos de tamaños de pantalla tradicionales (pequeño, normal, grande y xlarge).

Nota: Los tamaños que especifica con estos calificadores no son los tamaños de pantalla reales. Más bien, los tamaños son para el ancho o alto en unidades de dp que están disponibles para la ventana de su actividad. El sistema Android puede usar parte de la pantalla para la interfaz de usuario del sistema (como la barra del sistema en la parte inferior de la pantalla o la barra de estado en la parte superior), por lo que es posible que parte de la pantalla no esté disponible para su diseño. Por lo tanto, los tamaños que declare deben ser específicamente sobre los tamaños que necesita su actividad; el sistema tiene en cuenta cualquier espacio utilizado por la interfaz de usuario del sistema al declarar cuánto espacio proporciona para su diseño. También tenga en cuenta que la barra de acción se considera parte del espacio de la ventana de su aplicación, aunque su diseño no lo declara, por lo que reduce el espacio disponible para su diseño y debe tenerlo en cuenta en su diseño.

Tabla 2. Nuevos calificadores de configuración para el tamaño de la pantalla (introducidos en Android 3.2). Configuración de pantalla Valores de calificador Descripción smallestWidth swdp

Ejemplos: sw600dp sw720dp

El tamaño fundamental de una pantalla, como lo indica la dimensión más corta del área de pantalla disponible. Específicamente, el pequeño ancho del dispositivo es el más corto de la altura y el ancho disponibles de la pantalla (también puede pensar en él como el “ancho más pequeño posible” para la pantalla). Puede usar este calificador para asegurarse de que, independientemente de la orientación actual de la pantalla, su aplicación tenga al menos dps de ancho disponible para su interfaz de usuario.

Por ejemplo, si su diseño requiere que la dimensión más pequeña del área de la pantalla sea de al menos 600 dp en todo momento, puede usar este calificador para crear los recursos de diseño, res / layout-sw600dp /. El sistema utilizará estos recursos solo cuando la dimensión más pequeña de la pantalla disponible sea de al menos 600 dp, independientemente de si el lado de 600 dp es la altura o el ancho percibidos por el usuario. El pequeño ancho es una característica de tamaño de pantalla fijo del dispositivo; El ancho más pequeño del dispositivo no cambia cuando cambia la orientación de la pantalla.

El ancho más pequeño de un dispositivo tiene en cuenta las decoraciones de la pantalla y la interfaz de usuario del sistema. Por ejemplo, si el dispositivo tiene algunos elementos de IU persistentes en la pantalla que representan el espacio a lo largo del eje del pequeño ancho, el sistema declara que el ancho más pequeño es menor que el tamaño real de la pantalla, porque esos son píxeles de pantalla que no están disponibles para su IU.

Esta es una alternativa a los calificadores de tamaño de pantalla generalizados (pequeño, normal, grande, xlarge) que le permite definir un número discreto para el tamaño efectivo disponible para su interfaz de usuario. El uso de smallestWidth para determinar el tamaño general de la pantalla es útil porque el ancho es a menudo el factor determinante en el diseño de un diseño. Una interfaz de usuario a menudo se desplazará verticalmente, pero tiene restricciones bastante estrictas sobre el espacio mínimo que necesita horizontalmente. El ancho disponible también es el factor clave para determinar si se debe usar un diseño de un panel para teléfonos o un diseño de varios paneles para tabletas. Por lo tanto, es probable que a usted le preocupe más cuál será el ancho más pequeño posible en cada dispositivo. Ancho de pantalla disponible wdp

Ejemplos: w720dp w1024dp

Especifica un ancho mínimo disponible en unidades de dp en el que se deben usar los recursos, definido por el valor. El valor correspondiente del sistema para el ancho cambia cuando la orientación de la pantalla cambia entre horizontal y vertical para reflejar el ancho real actual que está disponible para su interfaz de usuario.

Esto suele ser útil para determinar si se debe utilizar un diseño de varios paneles, porque incluso en un dispositivo de tableta, a menudo no querrá el mismo diseño de varios paneles para la orientación vertical que para el paisaje. Por lo tanto, puede usar esto para especificar el ancho mínimo requerido para el diseño, en lugar de usar los calificadores de tamaño de pantalla y orientación juntos. Altura de pantalla disponible hdp

Ejemplos: h720dp h1024dp etc.

Especifica una altura de pantalla mínima en unidades de dp a la que se deben usar los recursos, definida por el valor. El valor correspondiente del sistema para la altura cambia cuando la orientación de la pantalla cambia entre horizontal y vertical para reflejar la altura real actual que está disponible para su interfaz de usuario.

Usar esto para definir la altura requerida por su diseño es útil de la misma manera que wdp es para definir el ancho requerido, en lugar de usar tanto el tamaño de pantalla como los calificadores de orientación. Sin embargo, la mayoría de las aplicaciones no necesitarán este calificador, considerando que las IU a menudo se desplazan verticalmente y, por lo tanto, son más flexibles con la altura disponible, mientras que el ancho es más rígido.

Si bien usar estos calificadores puede parecer más complicado que usar grupos de tamaño de pantalla, en realidad debería ser más simple una vez que determine los requisitos para su interfaz de usuario. Cuando diseña su interfaz de usuario, lo principal que probablemente le importa es el tamaño real en el que su aplicación cambia entre una interfaz de usuario de estilo de teléfono y una interfaz de usuario de estilo tableta que usa múltiples paneles. El punto exacto de este cambio dependerá de su diseño particular; tal vez necesite un ancho de 720 dp para el diseño de su tableta, tal vez 600 dp sea suficiente, o 480 dp, o algún número entre estos. Usando estos calificadores en la tabla 2, usted tiene el control del tamaño exacto en el que cambia su diseño.

Para obtener más información sobre estos calificadores de configuración de tamaño, consulte el documento Proporcionar recursos. Ejemplos de configuración

Para ayudarlo a orientar algunos de sus diseños para diferentes tipos de dispositivos, aquí hay algunos números para anchos de pantalla típicos:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

Usando los calificadores de tamaño de la tabla 2, su aplicación puede cambiar entre sus diferentes recursos de diseño para teléfonos y tabletas usando cualquier número que desee para el ancho y / o alto. Por ejemplo, si 600 dp es el ancho más pequeño disponible que admite el diseño de su tableta, puede proporcionar estos dos conjuntos de diseños:

res / layout / main_activity.xml # Para teléfonos res / layout-sw600dp / main_activity.xml # Para tabletas

En este caso, el ancho más pequeño del espacio de pantalla disponible debe ser 600dp para que se aplique el diseño de la tableta.

Para otros casos en los que desee personalizar aún más su interfaz de usuario para diferenciar entre tamaños, como tabletas de 7 “y 10”, puede definir diseños adicionales de ancho más pequeño:

res / layout / main_activity.xml # Para teléfonos (menos de 600dp de ancho disponible) res / layout-sw600dp / main_activity.xml # Para tabletas de 7 ”(600dp de ancho y más grandes) res / layout-sw720dp / main_activity.xml

Para tablets de 10 ”(720dp de ancho y más grandes)

Observe que los dos conjuntos anteriores de recursos de ejemplo utilizan el calificador de “ancho más pequeño”, swdp, que especifica el más pequeño de los dos lados de la pantalla, independientemente de la orientación actual del dispositivo. Por lo tanto, usar swdp es una forma sencilla de especificar el tamaño de pantalla total disponible para su diseño ignorando la orientación de la pantalla.

Sin embargo, en algunos casos, lo que podría ser importante para su diseño es exactamente cuánto ancho o alto está disponible actualmente. Por ejemplo, si tiene un diseño de dos paneles con dos fragmentos uno al lado del otro, es posible que desee utilizarlo siempre que la pantalla proporcione al menos 600 ppp de ancho, ya sea que el dispositivo esté en orientación horizontal o vertical. En este caso, sus recursos podrían verse así:

res / layout / main_activity.xml # Para teléfonos (menos de 600dp de ancho disponible) res / layout-w600dp / main_activity.xml # Multi-panel (cualquier pantalla con 600dp de ancho disponible o más)

Observe que el segundo conjunto utiliza el calificador “ancho disponible”, wdp. De esta manera, un dispositivo puede usar ambos diseños, dependiendo de la orientación de la pantalla (si el ancho disponible es de al menos 600 dp en una orientación y menos de 600 dp en la otra orientación).

Si le preocupa la altura disponible, puede hacer lo mismo con el calificador hdp. O incluso combine los calificadores wdp y hdp si necesita ser realmente específico.

Creo que es demasiado tarde para responder a este hilo. Pero me gustaría compartir mi idea o forma de resolver el problema del tamaño del texto en los dispositivos de resolución de diferencia. Muchos sitios de desarrolladores de Android sugieren que tenemos que usar sp unidad para el tamaño del texto que manejará el tamaño del texto para dispositivos de resolución de diferencia. Pero siempre soy incapaz de obtener el resultado deseado. Así que encontré una solución que estoy usando de mis últimos 4-5 proyectos y está funcionando bien. Según mi sugerencia, debe colocar el tamaño del texto para cada dispositivo de resolución, lo cual es un trabajo un poco tedioso, pero cumplirá con sus requisitos. Cada desarrollador debe escuchar sobre la proporción como 4: 6: 8: 12 (h: xh: xxh: xxxh respectivamente). Ahora dentro de tu proyecto res carpeta tienes que crear 4 carpetas con archivo dimens, por ejemplo

  1. res / valores-hdpi / dimens.xml
  2. res / valores-xhdpi / dimens.xml
  3. res / valores-xxhdpi / dimens.xml
  4. res / valores-xxxhdpi / dimens.xml

Ahora, dentro del archivo dimens.xml, debe colocar los tamaños de texto. Te estoy mostrando el código para valores-hdpi, de manera similar, debe colocar el código para otros valores de resolución / archivo dimens.xml.

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">4px</dimen>
</resources>

Para otras resoluciones es como xhdpi : 6px, xxhdpi : 8px, xxxhdpi : 12px. Esto se calcula con la relación (3: 4: 6: 8: 12) que he escrito arriba. Analicemos otro ejemplo de tamaño de texto con la proporción anterior. Si desea tomar un tamaño de texto de 12px en hdpi, entonces en otra resolución sería

  1. hdpi: 12 px
  2. xhdpi: 18 px
  3. xxhdpi: 24 px
  4. xxxhdpi: 36px

Esta es la solución simple para implementar el tamaño de texto requerido para todas las resoluciones. No estoy considerando valores-mdpi dispositivos de resolución aquí. Si alguien quiere incluir el tamaño del texto para esta resolución, la ración es como 3: 4: 6: 8: 12. En cualquier consulta por favor hágamelo saber. Espero que les ayude.

A veces, es mejor tener solo tres opciones

 style="@android:style/TextAppearance.Small"

Utilice pequeño y grande para diferenciar el tamaño de pantalla normal.

<TextView
            android:id="@+id/TextViewTopBarTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@android:style/TextAppearance.Small"/>

Por lo general, no es necesario que especifique nada.

<TextView
            android:id="@+id/TextViewTopBarTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

Con esto, puede evitar probar y especificar dimensiones para diferentes tamaños de pantalla.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *