设置为通知时,大图片正在裁剪

时间:2015-01-28 10:28:14

标签: android push-notification remoteview

我想在Android通知栏中显示大图片样式图片。但是我遇到了问题 - >当我使用以下代码在通知栏中设置图像时:

PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ctx)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle(title)
            .setContentText(message)
            .setOngoing(false)
            .setAutoCancel(true)
            .setStyle(new NotificationCompat.BigPictureStyle()
            .bigPicture(bitmap))
            .setPriority(Notification.PRIORITY_HIGH)
            //.setStyle(new NotificationCompat.BigTextStyle().bigText(message))
            .setContentIntent(resultPendingIntent);
            // mId allows you to update the notification later on.
            mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
            mBuilder.setDefaults(Notification.DEFAULT_VIBRATE);
            NotificationManager mNotificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
            mNotificationManager.notify(0 , mBuilder.build());

始终从左右角落裁剪。我不想使用远程视图。任何人都可以告诉我可以放在通知栏中的图像的大小和分辨率,不应该被裁剪。

由于

4 个答案:

答案 0 :(得分:12)

因为它不是2:1的比例而被裁剪的原因 您为大图片提供的图片应该是2:1的比例,否则它会被裁剪或图像很小会变得拉伸。

查看https://documentation.onesignal.com/docs/android-customizations#section-big-picture

答案 1 :(得分:3)

为什么不使用布局而不是位图?这是一个如何操作的教程,http://codeversed.com/expandable-notifications-android/,在布局中你可以调整imageview属性来居中和缩放图像,还可以使用android的屏幕大小存储桶来获取针对特定屏幕优化的图像大小。如果有帮助,请告诉我。

编辑:是否有任何解决方案可以帮助您实现,您想要什么?如果是这样,请接受其中一个答案,因为它可能会帮助其他人。谢谢

答案 2 :(得分:2)

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/notification_template_material_big_picture.xmlhttp://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.0_r1/android/app/Notification.java#Notification.Builder.getBigPictureLayoutResource%28%29 - Android源代码。

我认为这可能有助于澄清为什么会出现问题。 ImageView行为取决于屏幕大小,因此您的图像将被裁剪为

android:scaleType="centerCrop"

在每个设备上的方式不同,我很害怕。

答案 3 :(得分:1)

尝试将图片视图放在布局中。因为有时它可以顺利运行。并尝试将scaletype = centerinside放入xml中。