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

时间:2015-06-23 05:54:04

标签: android image bitmap push-notification

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

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

1 个答案:

答案 0 :(得分: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();