URL image Nougat 及以上 OS 版本如何设置自定义通知图标?
How to set custom notification icons from URL image Nougat and above OS Version?
我在通知中通过图像 URL 实现了自定义图标,这是通过使用以下代码获取默认远程视图来实现的
RemoteViews contentView = notification.contentView;
RemoteViews bigContentView = notification.bigContentView;
int bigIconId = context.getResources().getIdentifier("android:id/big_picture", null, null);
int iconId = context.getResources().getIdentifier("android:id/icon", null, null);
int smallIconId = context.getResources().getIdentifier("right_icon", "id", android.R.class.getPackage().getName());
int largeIconExId = context.getResources().getIdentifier("profile_badge", "id", android.R.class.getPackage().getName());
if (finalSmallIcon != null)
Picasso.with(context).load(finalSmallIcon).into(contentView, iconId, finalData_id, notification);
if (finalLargeIcon != null) {
Picasso.with(context).load(finalLargeIcon).into(contentView, iconId, finalData_id, notification);
Picasso.with(context).load(finalLargeIcon).into(contentView, largeIconExId, finalData_id, notification);
}
if (finalSmallIcon != null)
Picasso.with(context).load(finalSmallIcon).into(contentView, smallIconId, finalData_id, notification);
if (finalBigPicture != null) {
// Picasso.with(context).load(finalLargeIcon).into(bigContentView, iconId, finalData_id, notification);
Picasso.with(context).load(finalBigPicture).into(bigContentView, bigIconId, finalData_id, notification);
}
}
});
但在牛轧糖及更高版本中,从 "notification.contentView" 中获取空值。那么我如何使用 customLayout 和 RemoteView class 更新 Nougat 及更高版本中的通知图标。
提前致谢。
NotificationCompat.Builder notificationBuilder = new notificationCompat.Builder(context);
notificationBuilder
.setSmallIcon(context.getApplicationInfo().icon);
notificationBuilder.setLargeIcon(largeIcon != null &&!largeIcon.isEmpty()? Picasso.with(context).load(largeIcon).get() : BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher));
我在通知中通过图像 URL 实现了自定义图标,这是通过使用以下代码获取默认远程视图来实现的
RemoteViews contentView = notification.contentView;
RemoteViews bigContentView = notification.bigContentView;
int bigIconId = context.getResources().getIdentifier("android:id/big_picture", null, null);
int iconId = context.getResources().getIdentifier("android:id/icon", null, null);
int smallIconId = context.getResources().getIdentifier("right_icon", "id", android.R.class.getPackage().getName());
int largeIconExId = context.getResources().getIdentifier("profile_badge", "id", android.R.class.getPackage().getName());
if (finalSmallIcon != null)
Picasso.with(context).load(finalSmallIcon).into(contentView, iconId, finalData_id, notification);
if (finalLargeIcon != null) {
Picasso.with(context).load(finalLargeIcon).into(contentView, iconId, finalData_id, notification);
Picasso.with(context).load(finalLargeIcon).into(contentView, largeIconExId, finalData_id, notification);
}
if (finalSmallIcon != null)
Picasso.with(context).load(finalSmallIcon).into(contentView, smallIconId, finalData_id, notification);
if (finalBigPicture != null) {
// Picasso.with(context).load(finalLargeIcon).into(bigContentView, iconId, finalData_id, notification);
Picasso.with(context).load(finalBigPicture).into(bigContentView, bigIconId, finalData_id, notification);
}
}
});
但在牛轧糖及更高版本中,从 "notification.contentView" 中获取空值。那么我如何使用 customLayout 和 RemoteView class 更新 Nougat 及更高版本中的通知图标。 提前致谢。
NotificationCompat.Builder notificationBuilder = new notificationCompat.Builder(context);
notificationBuilder
.setSmallIcon(context.getApplicationInfo().icon);
notificationBuilder.setLargeIcon(largeIcon != null &&!largeIcon.isEmpty()? Picasso.with(context).load(largeIcon).get() : BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher));