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

标签 android cordova push-notification ionic-framework phonegap-pushplugin

我正在使用 Ionic (Cordova + AngularJS) 开发 Android 应用程序。有了它,我使用推送插件(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 status bar expects icons of size 25x25dp while guidelines recommend 32x32dp. Who is wrong? (第二个答案)

例如,使用我的三星 s5,我将 144*144px 的 xxhdpi 图标换成 72*72px 大小的相同图标,并且可以正常工作。图标不再被剪切。


现在回答我的问题: 我如何设置这个“辅助”图标,我只在我的资源文件夹中用于通知而不覆盖原始图标?

最佳答案

您不需要对图片大小有那么严格的要求。将两个图标放在 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);

希望对你有帮助。

关于Android 状态栏图标大小 - 使用 Cordova/Phonegap 推送插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30727539/

相关文章:

android - Android 是否支持 3 层或更多层的嵌套 fragment ?

java - 首次未加载带有毕加索的 map 标记点图像

android - 如何将 Long 类型值插入 SQLite

javascript - cordova 插件网络接口(interface)问题

android 8 (26) View Z index 的表现与 <= 25 不同

android - 是否可以在 Google 钱包 Android API 中添加任何商家帐户?

android - 保存在目录中捕获的图像时 PhoneGap 文件 API 问题

iOS 10 推送通知 - willPresentNotification 和 didReceiveNotificationResponse 是如何工作的?

ios - 设备 token 未生成iOS

ios - 推送通知角标(Badge)重置计数