2010-08-20 8 views
15

Estoy trabajando en una aplicación basada en Galaxy S en este momento. Sé que Galaxy S tiene 480 px de ancho y 800 px de alto, pero ¿cuánto cuesta eso en DP?¿Cómo saber la resolución de pantalla en "DP"?

Digamos que si quiero tener dos diseños uno al lado del otro, tendré que establecerlos en 240 px. ¿Pero cómo sé qué valor debo usar en la unidad DP?

Respuesta

14
La conversión de unidades de inmersión a píxeles de pantalla es simple: pixels = dips * (densidad/160). Por ejemplo, en una pantalla de 240 ppp, 1 inmersión equivaldría a 1,5 píxeles físicos. Se recomienda encarecidamente usar unidades de inmersión para definir la IU de su aplicación, como una forma de garantizar una visualización adecuada de su IU en diferentes pantallas.

Encontrado: http://developer.android.com/guide/practices/screens_support.html

[editar] sólo tenía que utiliza esto. El uso del DisplayMetrics.density devuelve solo 0.75, 1 y 1.5. DisplayMetrics.densityDpi usar en lugar o cambiar los cálculos para pixels = dips * DisplayMetrics.density

+0

¡Cómo me perdí eso! Muchas gracias :) – RobGThai

0

Lo que descubrí es que es un DP no se trata de una resolución en absoluto, se trata de tamaño de la pantalla, ya que está basado en 160dpi línea de base. Una forma sencilla de calcular será: ScreenSizeInInches * 160.

En su caso:

ancho en pulgadas = = 480px/(240px/inch)2 inches altura en pulgadas = 800px/(240px/inch) = 10/3 inches

Comprobar: sqrt(sqr(2) + sqr(10/3)) ~ = 4 inches cuales es del tamaño de un Galaxy S.

así que el tamaño de DP es (2 * 160) x (10/3 * 160) = 320dp x 533.3dp

Cuestiones relacionadas