2011-04-27 24 views
6

Estoy dando notificación por un servicio en segundo plano. En la notificación que estoy mostrando una imagen, las dimensiones de la imagen son 15 * 15. Pero cuando se muestra la imagen, se estira automáticamente a un tamaño grande, por lo que se volvió borrosa. No he especificado el tamaño de la imagen en mi programa. Por qué ocurre estoIcono de notificación de Android

Respuesta

0

Esto se debe a que al especificar las dimensiones en Java se considera automáticamente como un valor de píxel.

Tendrá que implementar un método de ayuda en alguna parte, mejor en una clase auxiliar, que calcula y devuelve un valor de píxeles independiente de la densidad en función del valor de píxel proporcionado.

La ecuación es px = dip * (density/160) de la cual obtenemos ese dip = px/(density/160).

Esta respuesta here es incluso mejor en realidad.

8

Los iconos pequeños

Guildlines dice 2 4x24, eso es para mdpi.

La aplicación de la conversión dp*density/160 obtiene estos píxeles de resolución:

LDPI 18x18
mdpi 24x24
IPAP 36x36
xhdpi 48x48

(Las directrices en realidad ahora lista estas 4 dimensiones)

dinámicamente tamaño iconos grandes

Si va a crear una imagen, o cambiar el tamaño de una imagen para fijar la gran área de la imagen de notificación, puede obtener las dimensiones en píxeles de este modo:

int width = resources.getDimensionPixelSize(android.R.dimen.notification_large_icon_width); 
int height = resources.getDimensionPixelSize(android.R.dimen.notification_large_icon_height); 

Ver https://developer.android.com/reference/android/R.dimen.html#notification_large_icon_height

Cuestiones relacionadas