我使用下面的代码来获取Notificaiton Icon。这会给出正常的通知图标,但是它的右下角有一个小白框。如何为此设置图标。
public void not() {
Notification noti = new Notification.Builder(context).setSmallIcon(R.mipmap.lnc)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.lnc))
.setContentTitle("My Title")
.setContentText("Done").setSmallIcon(R.mipmap.lnc)
.build();
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
// hide the notification after its selected
noti.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, noti);
}
答案 0 :(得分:2)
从棒棒糖开始,你的小图标必须是单色,即透明背景&白色,否则它将显示为白色框。因此,将您的R.mipmap.lnc转换为轮廓,即创建您的图标,使您想要显示的部分应为白色和背景是透明的。如果要为背景添加颜色,可以使用setColor方法。
阅读this链接。
答案 1 :(得分:2)
使用setSmallIcon(R.drawable.YOUR_SMALL_ICON
)为通知设置小图标。
仅供参考,根据设计指南,您必须使用silhouette
Builder.setSmallIcon()
。见design gideline
Notification noti = new Notification.Builder(context)
.setSmallIcon(getNotificationSmallIcon())
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.lnc))
.setContentTitle("My Title")
.setContentText("Done")
.build();
..................
..........................
private int getNotificationSmallIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.ic_silhouette : R.drawable.ic_launcher;
}
答案 2 :(得分:0)
System.Security.SecurityException: Requested registry access is not allowed.
at Microsoft.Win32.RegistryKey.OpenSubKey(string name, Boolean writable)
at System.Environment.SetEnvironmentVariable(String variable, String value, EnvironmentVariableTarget target)
....... followed by the code Stack Trace.
试试这个