我发现自己很好奇为什么Notification.Builder上的setLargeIcon方法只接受一个位图,没有重载提供一个资源ID。也许这是出于性能原因,但它看起来很奇怪,因为setSmallIcon确实接受一个res可绘制的id。蜂窝通知 - 如何将largeIcon设置为正确的大小?
Notification.Builder builder = new Notification.Builder(application);
// ....
builder.setLargeIcon(iconBitmap); // Requires a Bitmap
builder.setSmallIcon(iconResId); // Requires a drawable resource ID
Notification notification = builder.getNotification();
可悲设置在通知不进行缩放,所以位图需要位图以用于通知视图被提供完全正确的尺寸。
假设我需要提供largeIcon位图的xhdpi,hdpi,mdpi和ldpi版本,他们需要的尺寸是多少?我可以在文档中看到没有提及,或者在搜索更广泛的网络之后。
啊,这很有趣。你知道这些值在哪些单位(17104902,17104901)? –
它们很可能是xml中的dp。当你使用资源。 getDimensionPixelSize()你会在px中得到它们。 – alexanderblom
谢谢你们。这很好地诀窍。我认为它需要一个位图而不是resId的原因是它是为社交媒体使用而设计的,人们的面孔通常不会与应用程序一起分发。 width = res.getDimensionPixelSize(android.R.dimen.notification_large_icon_width) –