Icono de Notificación de Android
Estoy dando notificación por un servicio de fondo. En la notificación estoy mostrando una imagen, las dimensiones de la imagen son 15 * 15. Pero cuando se muestra la imagen que automáticamente se extiende a gran tamaño, por lo que se convirtió en desenfoque. No he especificado el tamaño de la imagen en mi programa. Por qué esta pasando esto
Esto se debe a que al especificar dimensiones en Java se considera automáticamente como un valor de píxel.
Deberá implementar un método auxiliar en algún lugar, lo mejor en una clase auxiliar, que calcula y devuelve un valor de píxel independiente de densidad basado en el valor de píxel proporcionado.
La ecuación es px = dip * (density / 160)
de la cual obtenemos que dip = px / (density/160)
.
Esta respuesta aquí es aún mejor en realidad.
Consulte las directrices de los iconos de la barra de estado: http://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html
Para la imagen del icono de barra de estado hdpi debe ser altura 38px (24×38),
Mdpi – 16×25
Ldpi – 12×19
Los pequeños iconos
Guildlines dice 24×24, eso es para mdpi.
Aplicando la conversión dp*density/160
obtendrá estas resoluciones de píxeles:
Ldpi 18×18
Mdpi 24×24
Hdpi 36×36
Xhdpi 48×48
(Las directrices en realidad ahora enumeran estas 4 dimensiones)
Iconos grandes de tamaño dinámico
Si está creando una imagen o cambiando el tamaño de una imagen para arreglar el área de imagen de notificación grande, puede obtener las dimensiones de píxeles de la siguiente manera:
int width = resources.getDimensionPixelSize(android.R.dimen.notification_large_icon_width); int height = resources.getDimensionPixelSize(android.R.dimen.notification_large_icon_height);
Consulte https://developer.android.com/reference/android/R.dimen.html#notification_large_icon_height