Notifications Honeycomb – Comment définir largeIcon à la bonne taille?

Je suis curieux de savoir pourquoi la méthode setLargeIcon sur Notification.Builder accepte uniquement un bitmap, sans surcharge pour fournir un identifiant de ressource. Peut-être que cela a été fait pour des raisons de performance, mais cela semble étrange car setSmallIcon accepte un identifiant pouvant être dessiné.

Notification.Builder builder = new Notification.Builder(application); // .... builder.setLargeIcon(iconBitmap); // Requires a Bitmap builder.setSmallIcon(iconResId); // Requires a drawable resource ID Notification notification = builder.getNotification(); 

Malheureusement, le bitmap fourni n’est pas mis à l’échelle dans la notification. La taille du bitmap doit donc être exacte pour l’affichage de notification.

En supposant que je doive fournir les versions xhdpi, hdpi, mdpi et ldpi du bitmap largeIcon, quelles sont les tailles requirejses? Je ne vois aucune mention dans les docs, ni après avoir parcouru le Web.

    Je n’ai pas encore eu l’occasion de le vérifier, mais l’API 11 a introduit les dimensions publiques suivantes:

    • notification_large_icon_height
    • notification_large_icon_width

    Devrait être capable de les utiliser pour mettre votre image à l’échelle avant de la définir dans la notification.

    J’ai utilisé les dimensions de la grande icône de la notification pour créer une image bitmap mise à l’échelle

     BitmapDrawable contactPicDrawable = (BitmapDrawable) ContactsUtils.getContactPic(mContext, contactId); Bitmap contactPic = contactPicDrawable.getBitmap(); Resources res = mContext.getResources(); int height = (int) res.getDimension(android.R.dimen.notification_large_icon_height); int width = (int) res.getDimension(android.R.dimen.notification_large_icon_width); contactPic = Bitmap.createScaledBitmap(contactPic, width, height, false); 

    Et puis je place la grande icône avec ce bitamp à l’échelle.