unidad pixeles online medida entre diferencias convertir convert android android-textview android-fonts

pixeles - Texto de Android sp vs dp: qué ajustaría la ''escala'' y cuál es la filosofía de soporte



px to dp android online (4)

La respuesta está en considerar este problema particular de manera integral.

La motivación para usar "sp" para los tamaños de fuente radica en otorgarle al desarrollador la capacidad de controlar su diseño de manera que el usuario cambie el tamaño de fuente en su dispositivo.

Ejemplo:

Veamos 2 casos extremos:

1) El usuario selecciona el tamaño de letra "pequeño"

Así es como se ve mi diseño:

http://postimg.org/image/kiyqeo2bh/

Aquí está el diseño xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="16dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="16dp" tools:context=".MainActivity" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_row="0" android:layout_column="0" android:text="Material-Design ist die Scheiße" android:textSize="18sp" android:background="#ffff0000" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_row="0" android:layout_column="0" android:text="Material-Design ist die Scheiße" android:textSize="25sp" android:background="#ffff0000" />

2) Si el usuario selecciona el tamaño de fuente "enorme":

Esto es lo que mi diseño se ve:

http://postimg.org/image/d7rax9wob/

Mi diseño xml es el mismo que el anterior en el caso 1).

Entonces, como puede ver, lo que sucedió aquí es que TextView superior tiene una especie de tamaño de fuente perfecto en sp, ya que no se ajusta a la totalidad del rango de tamaños de fuente (de pequeño a enorme). Pero el TextView inferior desordena completamente su diseño / diseño en el caso 2).

De modo que usted, como desarrollador, puede iterar y decidir qué tamaño en sp funciona para su diseño y Android lo dibujará para usted.

Por lo tanto, sabemos por muchas otras publicaciones que deberíamos usar sp en lugar de dp para texto en Android, y sabemos que la razón de esto es respetar las "preferencias del usuario".

¿Pero precisamente cuáles son estas preferencias? ¿Cómo podría un usuario cambiar esta configuración?

No puedo encontrar ninguna referencia a través de la configuración de mi teléfono (hubiera esperado algo en ''Accesibilidad'' o ''Pantalla''). Entonces, ¿qué es una configuración de usuario? ¿Se hace solo a través de los gustos de una aplicación como ''Big Font''?

Suponiendo que lo sea (establecido por algo así como la fuente grande) - He jugado con Google Docs y algunas otras aplicaciones de Google con la fuente establecida en 130%. Mientras que la mayoría de los diseños se mantienen bien, algunos se cortan un poco y no se pueden leer (y eso es en un SGS2 de gran tamaño). Entonces, ¿cuál es el enfoque para desarrollar aplicaciones con tamaños de texto usando ''sp''? ¿Nos aseguramos de que funcione en una escala del 100% y luego ignoremos otras configuraciones? Llámelo un caso especial por el que el usuario puede preocuparse, o nos esforzamos por asegurarnos de que las cosas se expandan o se puedan desplazar, en caso de que el texto se desborde ?

Un argumento es que deberíamos usar ''dp'' para garantizar que un usuario tenga la oportunidad de ver el texto (incluso si tiene que usar una lupa)

Pensamientos / comentarios?


Se expone en el menú de configuración en algunos dispositivos Android (depende del fabricante). También puede ser alterado por algunas opciones de accesibilidad (dependiente del dispositivo).

En general, siempre debe utilizar píxeles independientes de la escala, especialmente para un gran cuerpo de texto.

Sin embargo, si su texto tiene que caber en un cuadro delimitador de tamaño conocido, entonces debe usar píxeles independientes de densidad para asegurarse de que el texto siempre se ajuste correctamente y que todos los caracteres sean visibles sin importar la configuración de los usuarios.

En pocas palabras: ¿aumentar el tamaño del texto en aproximadamente 5sp resultaría en que el texto sea ilegible o dañe su interfaz de usuario? Si es así, utilice píxeles independientes de la densidad. Si no es así, utiliza píxeles independientes de la escala. Sin embargo, en general debe tratar de usar píxeles independientes de la escala siempre que sea posible, lo que significa diseñar una IU que pueda acomodar diferentes tamaños de texto.


Se recomienda usar la unidad sp para texto porque en ICS y superior (también podría ser Honeycomb, corríjame si me equivoco), hay una preferencia por el tamaño de fuente de un usuario. Por lo tanto, si está utilizando pan de jengibre o inferior, no podrá encontrar esta configuración.

La preferencia está en Configuración, Pantalla, Tamaño de fuente. También hay una opción en Configuración, Accesibilidad, Texto grande, también.

Para responder a su pregunta sobre cómo utilizar sp , tenga en cuenta que, de forma predeterminada, sin cambiar ninguna de las preferencias de tamaño de fuente, 1sp es equivalente a 1dp (también, son equivalentes antes de que se introdujera la preferencia). Como ha notado, el diseño para el caso en el que un usuario tenga un gran texto probablemente requiera que asuma que las cosas tendrán que desplazarse hacia donde de otra forma no esperaría que lo hicieran.


px Pixels - corresponds to actual pixels on the screen. in Inches - based on the physical size of the screen. 1 Inch = 2.54 centimeters mm Millimeters - based on the physical size of the screen. pt Points - 1/72 of an inch based on the physical size of the screen. dp or dip Density-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi screen, so one dp is one pixel on a 160 dpi screen. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Note: The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp". sp Scale-independent Pixels - this is like the dp unit, but it is also scaled by the user''s font size preference. It is recommended you use this unit when specifying font sizes, so they will be adjusted for both the screen density and user''s preference. From Understanding Density Independence In Android: +----------------+----------------+---------------+-------------------------------+ | Density Bucket | Screen Density | Physical Size | Pixel Size | +----------------+----------------+---------------+-------------------------------+ | ldpi | 120 dpi | 0.5 x 0.5 in | 0.5 in * 120 dpi = 60x60 px | +----------------+----------------+---------------+-------------------------------+ | mdpi | 160 dpi | 0.5 x 0.5 in | 0.5 in * 160 dpi = 80x80 px | +----------------+----------------+---------------+-------------------------------+ | hdpi | 240 dpi | 0.5 x 0.5 in | 0.5 in * 240 dpi = 120x120 px | +----------------+----------------+---------------+-------------------------------+ | xhdpi | 320 dpi | 0.5 x 0.5 in | 0.5 in * 320 dpi = 160x160 px | +----------------+----------------+---------------+-------------------------------+ | xxhdpi | 480 dpi | 0.5 x 0.5 in | 0.5 in * 480 dpi = 240x240 px | +----------------+----------------+---------------+-------------------------------+ | xxxhdpi | 640 dpi | 0.5 x 0.5 in | 0.5 in * 640 dpi = 320x320 px | +----------------+----------------+---------------+-------------------------------+ +---------+-------------+---------------+-------------+--------------------+ | Unit | Description | Units Per | Density | Same Physical Size | | | | Physical Inch | Independent | On Every Screen | +---------+-------------+---------------+-------------+--------------------+ | px | Pixels | Varies | No | No | +---------+-------------+---------------+-------------+--------------------+ | in | Inches | 1 | Yes | Yes | +---------+-------------+---------------+-------------+--------------------+ | mm | Millimeters | 25.4 | Yes | Yes | +---------+-------------+---------------+-------------+--------------------+ | pt | Points | 72 | Yes | Yes | +---------+-------------+---------------+-------------+--------------------+ | dp | Density | ~160 | Yes | No | | | Independent | | | | | | Pixels | | | | +---------+-------------+---------------+-------------+--------------------+ | sp | Scale | ~160 | Yes | No | | | Independent | | | | | | Pixels | | | | +---------+-------------+---------------+-------------+--------------------+ More info can be also be found in the Google Design Documentation.