【问题标题】:Android Status Bar Icon Size - Using Cordova / Phonegap Push PluginAndroid 状态栏图标大小 - 使用 Cordova / Phonegap Push Plugin
【发布时间】:2015-08-24 00:07:37
【问题描述】:

我正在使用 Ionic (Cordova + AngularJS) 开发一个 Android 应用程序。有了它,我使用 Push Plugin (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 大小的相同图标,它可以工作。图标不再被剪切。


现在我的问题是: 我如何必须在我的资源文件夹中设置仅用于通知的“辅助”图标而不覆盖原始图标?

【问题讨论】:

  • 您是否尝试使用 ionic 团队提供的生成器生成所有图标? ionicframework.com/docs/cli/icon-splashscreen.html
  • 其实我没有。感谢您的提示,将尝试一下。
  • 没有区别。推送通知上的图标仍然损坏(第一次收到时..)
  • @Kryptik 你解决了吗?
  • 不。目前没有尝试,但还没有找到解决方案。

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


【解决方案1】:

您不需要对图像大小如此严格。将两个图标放在 platform/android/res/drawable 文件夹中。一个显示在棒棒糖导航栏上(例如: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% 白色)小图标的大图标。但是状态栏的问题依然存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多