安卓状态栏图标大小 - 使用 Cordova / Phonegap 推送插件

6
我正在使用Ionic(Cordova + AngularJS)开发Android应用程序。其中我使用Push插件(https://github.com/phonegap-build/PushPlugin)。
在我的资源文件夹中,我指定了6个不同的应用程序图标,从ldpixxxhdpi
<icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
<icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
<icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
<icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
<icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>

现在,当我构建完毕后,我的最终资源文件夹结构大致如下:
android/res/drawable-ldpi/icon.png
android/res/drawable-mdpi/icon.png

现在,在所有设备上,应用程序图标都可以正常工作。但是,如果我收到推送通知,状态栏中出现的应用程序图标太大了,因此只显示图标的中间部分(仅在最初几秒钟内,似乎之后会重新加载通知(例如,如果我下拉状态栏),它会正确显示)。
经过一番研究,我发现我提供的图标对于一般的应用程序图标来说是正确的,但是状态栏的图标必须具有另一种尺寸,正如我在这里发现的那样:Android状态栏期望尺寸为25x25dp的图标,而指南建议32x32dp。谁错了?(第二个答案)
例如,使用我的三星s5,我将144*144像素的xxhdpi图标替换为相同大小的72*72像素图标,它可以正常工作。图标不再被裁剪。

现在来谈我的问题:我该如何设置这些“次要”的图标,它们仅用于我的通知资源文件夹中,而不会覆盖原始图标?


你是否尝试使用Ionic团队提供的生成器生成所有图标?http://ionicframework.com/docs/cli/icon-splashscreen.html - e382df99a7950919789725ceeec126
实际上我没有。谢谢你的提示,我会试一下的。 - malifa
没有区别。当推送通知第一次接收时,图标仍然无法正常显示。 - malifa
@Kryptik,你解决了吗? - Steven Musumeche
目前还没有尝试,但是还没有找到解决方案。 - malifa
1个回答

1
你不需要太过严格地限制图片大小。将两个图标放在platform/android/res/drawable文件夹中。一个用于在Lollipop导航栏上显示(例如:small_icon.png),它需要是白色的,没有背景。另一个用于旧版本的Android(例如:large_icon.png)。
打开位于PushPlugin配置文件中的位置:
platforms/android/src/com/plugin/gcm/GCMIntentService.java

在NotificationCompat.Builder对象中设置您的图标路径:

.setSmallIcon(com.domain.appName.R.drawable.small_icon)
.setLargeIcon(largeIcon)

大图标需要是位图,因此在此之前定义:
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), com.domain.appName.R.drawable.large_icon);

希望它对你有所帮助。

谢谢,这对我确实非常有帮助,但不适用于这种情况。仅添加LargeIcon仅在Lollipop上为我产生影响(当我下拉状态栏以查看通知详细信息时)。在那里,我现在有了大图标,并在大图标的右下方有一个(100%白色)小图标。但是状态栏上的问题仍然存在。 - malifa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接