我在通知中显示的图标遇到了麻烦。我已经通过material designs page图标和Notification doc。
我使用了BMP 256颜色格式的不同比例:360px,144px,48px,24px 16px都继续显示白色块。
我将格式更改为PNG,使用了144px(在代码中使用的名称为“ ic_notify_icon”),仍然没有运气。
//Global
private NotificationManager mNotifyManager ;
private Notification mNotify;
private void initialize() {
mNotifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder mNotificationBuilder = new Notification.Builder(this);
mNotificationBuilder.setSmallIcon(R.mipmap.ic_notify_icon);
mNotificationBuilder.setContentTitle("A Title here");
mNotificationBuilder.setContentText("Some content text here");
mNotify = mNotificationBuilder.build();
ShowNotify();
}
private void ShowNotify(){
//...some code here
mNotifyMan.notify(0, mNotify);
//...some code here
}
有什么建议么?
ps。我看了this post,也是同样的问题,但是我觉得它没有帮助/用处,或者我只是不理解要求...
最佳答案
我找到了解决方案!
我只发现了有关Android通知(SDK 22 /版本5.1.1)的要求的提示,但是经过4个小时的搜索,终于找到了一个完整且有效的解决方案。
这是我遵循的步骤,似乎与各种论坛,问题/答案和文档中提到的内容保持一致,但不需要“步骤/要求”:
创建和准备图像
创建图像,但是您可以根据需要选择应用图标:
又快又脏
下载应用程序以设置透明度-我使用了IrfanView,效果很好
这是我在IrfanView中的图片
在IrfanView中打开图像,click File > Save As or press 's'
您应该打开一个Save Dialog
(在保存对话框的右下方,然后是一个保存选项对话框,如果没有,请选中Save options dialog
复选框,它应该会打开)
我的设置(默认设置)是:
压缩等级-6
使用主窗口颜色获得透明度-已选中
二进制编码
(ICO):使用主窗口颜色进行透明度-已选中
选中以下两个框:
保存透明色-已选中(我只选中了此复选框,但没有成功-有人可以解释为什么不这样做)
将Transparentcy保存为Alpha通道-已选中
另存为PNG文件。
保存框和保存选项
在Android Studio中:Right-Click Drawable folder > Add image asset
(任何资源文件夹都应该做)
从顶部下拉列表中单击Notification Icon
(默认为Launcher Icon
)
选择Image > Browse to image> click ok
您会注意到您的图像是灰度的
这是正常现象,因为Lollipop SDK (API 21 - Ver 5.0.1)
仅允许这种配色方案,在搜索中我遇到了材料设计页面,其中提到了该行中的某些内容(有人可以对此进行扩展)
在下面,您会注意到您的通知图标使用不同的“ dpi分辨率”,通常添加图像会显示白色块,但是添加透明度可以解决此问题。
我相信可以从“彩色”的角度使用此颜色,在这种情况下,IrfanView具有默认的黑色背景,从而针对该颜色创建了“反转”图像(假设在IrfanView中,一个保留了“使用主窗口颜色”为了提高透明度-选中”),您可以创建其他有趣的图像。
我真的希望这会有所帮助!