在bigpicture样式通知中调整图像大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在bigpicture样式通知中调整图像大小相关的知识,希望对你有一定的参考价值。

我想使用构建器样式大图(而不是使用自定义视图)在我的通知中显示图像。图像即将被裁剪。如何根据屏幕比例显示不同设备的正确图像?

我已经搜索过,我已经知道我们需要根据屏幕宽度缩放图像来显示通知,但是我无法实现这一点,并且对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();

以上是关于在bigpicture样式通知中调整图像大小的主要内容,如果未能解决你的问题,请参考以下文章

回形针不调整图像大小或创建样式目录

如何实时防止图像大小调整(页面加载期间)

如何在以下代码中停止调整大小和裁剪?

html2canvas,样式不适用于画布?

在 PHP 中调整图像大小

这个调整图像大小/裁剪图像的逻辑是不是正确(在 php 中,但它是关于逻辑而不是代码)