如何在React Native中按设备分辨率设置通知小图标
解决React Native Firebase Notifications安卓自定义小图标问题
别担心,这个问题其实挺常见的,我来帮你理清正确的用法!
你已经把不同分辨率的图标放到对应的drawable-xxx目录下了,这一步是对的。而在setSmallIcon方法里,你不需要填写完整的文件路径,只需要传入图标的**文件名(不带后缀)**就可以了——Android系统会自动根据当前设备的分辨率,去对应的drawable目录里匹配对应的图标文件。
举个例子:如果你的所有图标文件都叫ic_custom_notification.png(不管是mdpi还是xxxhdpi目录下的),那你的代码应该改成这样:
var notification = new firebase.notifications.Notification({ sound: 'default', show_in_foreground: true, }) .android.setPriority(firebase.notifications.Android.Priority.High) .android.setChannelId("channel") .android.setSmallIcon('ic_custom_notification'); // 这里填图标文件名(无后缀)
额外注意事项:
- 安卓通知图标有严格规范:必须是透明背景+纯白色前景的样式,否则可能会被系统自动处理成灰色方块,显示异常
- 确保所有drawable目录下的图标文件名完全一致(包括大小写,Android文件名区分大小写),建议用全小写+下划线的命名方式,比如
custom_notif_icon - 如果你不确定文件名是否正确,可以检查
android/app/src/main/res/下各个drawable目录里的图标文件名,直接照搬即可
内容的提问来源于stack exchange,提问作者Taylon Assis
相关产品推荐
相关产品推荐

