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

问题描述 投票:6回答:1

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

我已经搜索过,我已经知道我们需要根据屏幕宽度缩放图像来显示通知,但是我无法实现这一点,并且对ppi,dpi和为图像提供的所有其他格式感到困惑。请任何人都可以根据屏幕大小向我提供转换位图的代码,以便在不同的设备上以适当的格式显示?

android image bitmap push-notification
1个回答
0
投票

这是扩展接收位图的方法,其中第二个和第三个参数分别是宽度和高度

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();
© www.soinside.com 2019 - 2024. All rights reserved.