从StatusBarNotification检索小图标作为位图

时间:2019-02-04 10:06:32

标签: android bitmap

我正在尝试检索通知中的小图标 dataset = torchvision.datasets.EMNIST( path_data, download=True, split='balanced', train=not is_test_data, transform=torchvision.transforms.Compose([ lambda img: torchvision.transforms.functional.rotate(img, -90), lambda img: torchvision.transforms.functional.hflip(img), torchvision.transforms.ToTensor() ]) )

我发现NotificationListenerService函数返回一个notification.getSmallIcon()。如何从该图标中获得android.graphics.drawable.Icon

1 个答案:

答案 0 :(得分:2)

您需要在图标上使用loadDrawableloadDrawableAsync,它将返回一个可绘制对象。

  

loadDrawable已添加到API级别23 public Drawable loadDrawable中   (Context context)返回一个Drawable,可用于绘制   该图标内的图片,并在必要时进行构建。取决于   图片类型,这可能不是您要在用户界面上执行的操作   线程,因此请考虑改用loadDrawableAsync。

如下所示

Icon icon = notification.getSmallIcon(); 
Bitmap bitmap = icon.loadDrawable(context);

然后您可以通过下面的stackoverflow链接将可绘制对象转换为位图 有很多答案如何将drawable转换为Bitmap

How to convert a Drawable to a Bitmap?