如何在 运行 时间找到小通知图标的实际大小?

How to find actual size of small notification icon at run time?

我知道有一个针对不同屏幕 DPI 的小通知图标的不同尺寸列表,如图 here 所示。在为应用程序准备一组静态图标文件时了解这一点很有用。

但我需要使用 Notification.Builder 中的 setSmallIcon(Icon) 动态创建图标。对于大图标,我可以调用例如getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width) 和高度类似以获得精确的数值。我怎样才能对小图标做同样的事情?

小图标的大小为 24 dp。您可以在运行时以像素为单位计算实际大小。

科特林:

val smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24f, resources.displayMetrics)

Java:

float smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics())

如果你没有上下文(使用getResources),你可以使用这个作为后备:

val smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24f, Resources.getSystem().displayMetrics)