I download a image from server as bitmap and convert it to drawable now i want to use this drawable as notification icon. But i am unable to do that. here is my code:
Notification notification = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(message)
.setContentIntent(intent)
.setSmallIcon(bitmap)
.setWhen(when)
.build();
but icon is a Resources int value so when i used it it gives error. Any help
Edit:
Now i update my code and now i am doing like that :
Notification notification = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(message)
.setContentIntent(intent)
.setSmallIcon(icon)
.setLargeIcon(bitmap)
.setWhen(when)
.build();
but it gives large icon on left side and small icon on right side. I don't want this so for this i remove setSmallIcon line and run my code but it not showing me the notifications
If you read the developer documents specific to
Notification.Builder
you will see thatsetSmallIcon(int icon)
needs a A resource ID in the application's package of the drawable to use.Downloading an image, converting to a bitmap and then setting it to the
setSmallIcon()
is still going to give you an error.Even if you were to convert the
Bitmap
to aDrawable
like this for instance:it is still going to give you an error because that
Drawable
does not exist in your application package.The only possible solution is to use a
Drawable
resource that exists in yourpackage
and set it to thesetSmallIcon()
method. Typical usage:Alternatively, the
setLargeIcon (Bitmap icon)
requires a Bitmap instance. Without having to make any additional changes in your current code (since you already have aBitmap
), you can use that as it is, if it fits your requirement.If not, you pretty much have to use a
Drawable
resource that is already present in one of thedrawable
folders.Better option get application icon
There is some points about this question, mainly related with API 23+, if you are only interested in setSmallIcon, go to the 2nd and 3rd topics.
1st :
You can set the LargeIcon from a Drawable (instead of Resource id), like the following
2nd :
If you need to set a small icon in API below 23, you will need to set a resource id like
R.drawable.your_resource
. TheNotificationCompat.Builder
does not allow you to use Drawables or Bitmaps insetSmallIcon()
.3rd :
fortunately , the support has been expanded to
Icon
type onsetSmallIcon()
in version 23+, using the Notification.Builder, like following :you can try using this method
http://javatechig.com/android/android-notification-example-using-notificationcompat