2014-02-20 127 views
3

我使用NotificationCompat.Builder创建通知。要设置它的大图标的一部分,我使用的是这样的:通知中的缩放,裁剪图标

bob = new NotificationCompat.Builder(context) 
.setLargeIcon(bm) 
.setAutoCancel(true) 
.setSmallIcon(R.drawable.ic_launcher256) 
.setContentTitle(context.getResources().getString(R.string.app_name)) 
.setContentText(message) 
.setPriority(Notification.PRIORITY_HIGH); 

的smallicon是显示正常,但在某些设备上的大图标被放大,因此裁剪。在其他设备上(我可以对其进行测试的所有设备)都可以正常工作。

我不知道这个图标必须是什么大小的限制。它出现在用户联系人列表中,所以我无法控制那里的内容,尽管如果这是问题,我想我可以调整它的大小/重新格式化它。

我会继续调试这个(侧重于获取位图的逻辑),但认为如果我忽略了某些(非)明显的情况,我会问。也许人们可能会在他们的设备上设置不适合通知的联系照片,而无需进行某些预处理。

回答

7

这没有真正的记录。 :(

您可以从base template layout该图标扣篮只是在ImageViewandroid:scaleType="center"看到,所以任何比盒(@dimen/notification_large_icon_width X @dimen/notification_large_icon_height)更大只会得到裁剪,因为它溢出其边界。

的回答,然后,你可以从dimens.xml看到,是64x64dp,你需要在发布通知之前相应地调整你的Bitmaps

+0

谢谢。(实际上,我用128x128为64x64太小) –

+0

不要忘记你的密度转换吧!这是64平方褪色,在xhdpi(2x)显示器上是128x128 _pixels_。 – dsandler