12

Hola,Android Widget de mapa de bits Tamaños

estoy escribiendo un widget, pero estoy seguro de qué tamaño de mapa de bits que se utiliza como fondo para cada resolución de pantalla/densidad.

De acuerdo con la Android Developer App Widgets tutorial:

To find your minimum width and height in density-independent pixels (dp), use this formula: 
(number of cells * 74) - 2 
Following this formula, you should use 72 dp for a height of one cell, 294 dp and for a width of four cells 

Así que si mi aparato es 72dp x 294dp, qué tamaño de los mapas de bits necesito para mi LDPI, MDPI y dibujables IPAP?

Además, ¿necesitaré alguna configuración particular de pantallas de soporte en mi manifiesto?

TIA,

-Frink

Actualización: he hecho algunos patrones de tablero de ajedrez en varios tamaños y colores para cada carpeta drawable- y las probaron. ¿Es esta cosa de densidad algo así como una pista falsa?

Acabo de hacer una captura de pantalla de mi emulador corriendo como HVGA, densidad media, 320x480. El tamaño que ocupa mi widget es de 320x100, así que creo un mapa de bits de 320x100 en la carpeta mdpi como fondo para mi widget, se ve perfecto tanto en mi emulador como en LG GT540.

Y para un emulador que se ejecuta como WVGA854, alta densidad, 480x854. El tamaño de mi widget es 480x150. Crear un fondo de este tamaño y colocarlo en la carpeta hdpi se muestra correctamente en este emulador. No tengo ningún hardware para probar esto en Tho :-(

Update2: creo que puedo explicar mi problema mejor ahora :-)

Si tengo tres dispositivos:

Device1, resolution 320x480, density ldpi 
Device2, resolution 320x480, density mdpi 
Device3, resolution 400x854, density mdpi 

La física el tamaño de las pantallas probablemente sea diferente, pero no creo que los tamaños reales importen

He calculado que Device1 y Device2 necesitarán un fondo de 320x100, mientras que Device3 necesitará 400x150 Entonces, ¿qué s ize fondo va a la carpeta mdpi para mostrarse correctamente en Device2 y Device3?

+0

También estoy interesado en la respuesta. Mi widget es una sola celda, y los tamaños de imagen que utilicé son cuadrados de lado 72px, 100px y 150px. Sin embargo, esto solo fue una suposición, por lo que me interesaría mucho conocer los números "oficiales". –

+0

En respuesta a su actualización, parece que está funcionando, ¿verdad? ¿O hay un problema? Además, cuando ejecutas tu emulador, hay una configuración (o puede estar en la configuración del emulador) para escalar el emulador a un tamaño "real", lo que puede ayudarte a probar. – Computerish

+0

Computerish: ¡consulte Update2! Estoy mirando mis emuladores en tamaño "real", ta – FrinkTheBrave

Respuesta

9

sólo tiene que convertir 72dp x 294dp en tamaños reales de píxeles para ldpi, mdpi y hdpi.Ese proceso se explica aquí:

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

la fórmula es pixels = dps * (density/160), por lo que en su caso, 72 dp x 294 dp sería igual a:

  • LDPI (120): 54 x 221 pixeles
  • MDPI (160): 72 x 294 pixeles
  • IPAP (240): 108 x 441 pixeles
  • xhdpi (320): 144 x 588 pixeles

Actualización en respuesta a su segunda actualización: los recursos basados ​​en densidad están destinados a garantizar que los gráficos tengan (aproximadamente) el mismo tamaño real en todos los dispositivos. En tu caso, sin embargo, no te importa el tamaño real, te importa el fondo que llena el espacio que se supone que debe llenar para el widget. Debería poder manejar este problema para la mayoría de los fondos creando una imagen de Nueve Parches. El Nueve Parche se escalará según el tamaño requerido.

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

http://developer.android.com/guide/developing/tools/draw9patch.html

+0

Saludos, voy a dar una oportunidad cuando vuelva a tener la oportunidad – FrinkTheBrave

+0

@FrinkTheBrave por favor, háganos saber cómo llegar a –

+0

Computerish, me parece que las carpetas dibujables deberían estar relacionadas con el tamaño de la pantalla, en lugar de la densidad? – FrinkTheBrave

Cuestiones relacionadas