在通知中显示图像的缩略图

时间:2015-11-26 07:08:25

标签: android google-cloud-messaging thumbnails

我正在使用GCM推送通知。 在一些通知中我推文字和图像组合。但我需要在用户点击通知后才显示图像,否则我应该提供该图像的缩略图应作为该通知的一部分显示。 为此,我应该在哪里更改我的代码。在GCM Server或Android app方面。?

以下是我正在做的将Base64字符串转换为位图的代码。我需要的是这个图像的缩略图通知。如果任何可以生成图像缩略图的代码就足够了。

GCM侦听服务。

  @Override
        public void onMessageReceived(String from, Bundle data) {
                String message = data.getString("SERVER_MESSAGE");
                String imageBitMap= data.getString("IMAGE_BITMAP");
                jsonObject.put("Message", message);
                jsonObject.put("ImageBitMap",decodeImage(imageBitMap));

      sendNotification(jsonObject);
}
    /**
         * Decode a base64 string into a Bitmap
         */
        private static Bitmap decodeImage(String image_data) {
            // Decode the encoded string into largeIcon
            Bitmap largeIcon = null;
            if ((image_data != null) && (!image_data.equals(""))) {
                byte[] decodedImage = Base64.decode(image_data, Base64.DEFAULT);
                if (decodedImage != null) {
                    largeIcon = BitmapFactory.decodeByteArray(decodedImage
                            , 0
                            , decodedImage.length);
                }
            }
            return largeIcon;
        }

    //Notification of Image 
        private void sendNotification(JSONObject jsonObject) {
                String message= null;
                Bitmap bitmap=null;
                try {
                    message = jsonObject.getString("Message");
                    bitmap= (Bitmap) jsonObject.get("ImageBitMap");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                Intent intent = new Intent(this, ManualTestActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                PendingIntent pendingIntent = PendingIntent.getActivity(this, REQ_CODE, intent,
                        PendingIntent.FLAG_ONE_SHOT);

                Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                        .setSmallIcon(getNotificationIcon())
                        .setContentTitle("GCM")
                        .setContentText(message)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setContentIntent(pendingIntent)
                        .setStyle(new NotificationCompat.BigPictureStyle()
                                .bigPicture(bitmap));

                NotificationManager notificationManager =
                        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                notificationManager.notify(NOTF_ID, notificationBuilder.build());
            }

我已经使用了另一种方法,其中传递了图像URL,并且在下载完成后我将在后台下载图像,我正在生成通知。对于我需要生成图像缩略图的方法。

0 个答案:

没有答案