我希望能够使用构建器样式的大图片,在我的通知中显示一张图片(而不是使用自定义视图)。该图片总是被裁剪。我应该如何根据屏幕比例为不同设备显示正确的图片?我已经搜索过了,得出结论需要根据屏幕宽度缩放图像来显示通知,但我无法实现并且对ppi、dpi和所有其他提供的图像格式感到非常困惑。请问是否有人可以为我提供代码,将位图转换为在不同设备上以正确格式显示的位图?
Bitmap b = Bitmap.createScaledBitmap(receivedBitmap, 120, 120, false);
如果您想通过保持宽度的纵横比来进行缩放,则可以执行此操作。
public Bitmap getResizedBitmap(Bitmap bm, int width ) {
float aspectRatio = bm.getWidth() /
(float) bm.getHeight();
height = Math.round(width / aspectRatio);
Bitmap resizedBitmap = Bitmap.createScaledBitmap(
bm, width, height, false);
return resizedBitmap;
}
如果要使用缩放位图生成通知,请使用以下代码
NotificationManager notificationManager = (NotificationManager)
mContext.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification.Builder(mContext)
.setContentTitle("set title")
.setContentText("Swipe Down to View")
.setSmallIcon(mContext.getApplicationInfo().icon)
.setLargeIcon(receivedBitmap)
.setContentIntent(pendingIntent)
.setDefaults(Notification.DEFAULT_SOUND)
.setStyle(new Notification.BigPictureStyle()
.bigPicture(b))
.setPriority(Notification.PRIORITY_HIGH)
.setVibrate(new long[0])
.build();