通知中以bigpicture风格调整图片大小

8
我希望能够使用构建器样式的大图片,在我的通知中显示一张图片(而不是使用自定义视图)。该图片总是被裁剪。我应该如何根据屏幕比例为不同设备显示正确的图片?我已经搜索过了,得出结论需要根据屏幕宽度缩放图像来显示通知,但我无法实现并且对ppi、dpi和所有其他提供的图像格式感到非常困惑。请问是否有人可以为我提供代码,将位图转换为在不同设备上以正确格式显示的位图?
1个回答

1
这是如何缩放接收到的位图,其中第二个和第三个参数分别为宽度和高度。
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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接