3

I want to convert a Icon to Bitmap object in android.

My goal is to convert from Notification Icon to bitmap.

What should i do??

Thank you for all the answers!

user212942
  • 197
  • 3
  • 18
  • Thanks all. I solved with Reflection method(loadDrawableInner). – user212942 May 16 '16 at 12:05
  • I don't think this question is a complete duplicate, although similar. The difference is that `Icon` is not a `Drawable` but you can get a `Drawable` from an `Icon` using: `icon.loadDrawable(context)` – rintcius Jan 04 '17 at 06:12
  • Use this code : Icon icon = notification.getSmallIcon(); Bitmap bitmap = icon.loadDrawable(context); – Zeeshan Ali Apr 09 '20 at 06:33

2 Answers2

4

Hope this helps

Bitmap bitmapIcon = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
Alok Gupta
  • 1,353
  • 1
  • 13
  • 29
0

You can use this class. Also I usually use this code.

public static Bitmap drawableToBitmap (Drawable drawable) {
Bitmap bitmap = null;

if (drawable instanceof BitmapDrawable) {
    BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
    if(bitmapDrawable.getBitmap() != null) {
        return bitmapDrawable.getBitmap();
    }
}

if(drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
    bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel
} else {
    bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
}

Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;

}

Burak iren
  • 338
  • 3
  • 14