如何在推送通知(Gcm)android中显示图像?

从两天开始,我想要这样做。 但我失败了。 请任何人建议我如何在推送通知中获取图像。 先谢谢你。

在此处输入图像描述

编码我试过的:

@SuppressWarnings("deprecation") private void handleMessage(Context mContext, Intent intent) { Bitmap remote_picture = null; long when = System.currentTimeMillis(); int icon = R.drawable.reload_logo; try { Bundle gcmData = intent.getExtras(); if(intent.getExtras().getString("message")!=null) Log.v("TAG_IMAGE", "" + intent.getExtras().getString("message")); Log.v("TAG_IMAGE", "" + intent.getExtras().getString("imageurl")); { NotificationCompat.BigPictureStyle notiStyle = new NotificationCompat.BigPictureStyle(); notiStyle.setSummaryText(intent.getExtras().getString("message")); try { remote_picture = BitmapFactory.decodeStream((InputStream) new URL(intent.getExtras().getString("imageurl")).getContent()); } catch (IOException e) { e.printStackTrace(); } notiStyle.bigPicture(remote_picture); notificationManager = (NotificationManager) mContext .getSystemService(Context.NOTIFICATION_SERVICE); PendingIntent contentIntent = null; Intent gotoIntent = new Intent(); gotoIntent.setClassName(mContext, "com.reloadapp.reload.fragments.MainActivity");//Start activity when user taps on notification. contentIntent = PendingIntent.getActivity(mContext, (int) (Math.random() * 100), gotoIntent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( mContext); Notification notification = mBuilder.setSmallIcon(icon).setTicker("Reload.in").setWhen(0) .setAutoCancel(true) .setContentTitle("Reload.in") .setStyle(new NotificationCompat.BigTextStyle().bigText(intent.getExtras().getString("message"))) .setContentIntent(contentIntent) .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) .setLargeIcon(remote_picture) .setContentText(intent.getExtras().getString("message")) .setStyle(notiStyle).build(); notification.flags = Notification.FLAG_AUTO_CANCEL; count++; notificationManager.notify(count, notification);//This will generate seperate notification each time server sends. } }catch (Throwable e) { e.printStackTrace(); } } 

我正在获得小图标和大图标是相同的图像。 但我给了不同的。

结果:

谢谢@Ravi。

 @SuppressWarnings("deprecation") private void handleMessage(Context mContext, Intent intent) { Bitmap remote_picture = null; long when = System.currentTimeMillis(); int icon = R.drawable.reload_logo; Bundle gcmData = intent.getExtras(); //if message and image url if(intent.getExtras().getString("message")!=null && intent.getExtras().getString("imageurl")!=null) { try { Log.v("TAG_IMAGE", "" + intent.getExtras().getString("message")); Log.v("TAG_IMAGE", "" + intent.getExtras().getString("imageurl")); NotificationCompat.BigPictureStyle notiStyle = new NotificationCompat.BigPictureStyle(); notiStyle.setSummaryText(intent.getExtras().getString("message")); try { remote_picture = BitmapFactory.decodeStream((InputStream) new URL(intent.getExtras().getString("imageurl")).getContent()); } catch (IOException e) { e.printStackTrace(); } notiStyle.bigPicture(remote_picture); notificationManager = (NotificationManager) mContext .getSystemService(Context.NOTIFICATION_SERVICE); PendingIntent contentIntent = null; Intent gotoIntent = new Intent(); gotoIntent.setClassName(mContext, "com.reloadapp.reload.fragments.MainActivity");//Start activity when user taps on notification. contentIntent = PendingIntent.getActivity(mContext, (int) (Math.random() * 100), gotoIntent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( mContext); Notification notification = mBuilder.setSmallIcon(icon).setTicker("Reload.in").setWhen(0) .setAutoCancel(true) .setContentTitle("Reload.in") .setStyle(new NotificationCompat.BigTextStyle().bigText(intent.getExtras().getString("message"))) .setContentIntent(contentIntent) .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) .setContentText(intent.getExtras().getString("message")) .setStyle(notiStyle).build(); notification.flags = Notification.FLAG_AUTO_CANCEL; count++; notificationManager.notify(count, notification);//This will generate seperate notification each time server sends. } catch (Throwable e) { e.printStackTrace(); } } } 

对于多行:

  .setStyle(new NotificationCompat.BigTextStyle().bigText(intent.getExtras().getString("message"))) // use this