给公司写一个类似优酷的超大Notification,先看了看文档, http://www.apiminer.org/doc/reference/android/app/Notification.BigPictureStyle.html 原来实现起来简单!为了扩展性,我这里选择的自定义,查了下文档,普通通知栏高度64dp,BigPictureStyle或者BigTextStyle的样式通知栏是256dp,这里需要注意一下,这两个样式是在4.1(API16)之后才有的!
定义两个布局,一个normal_notify,一个big_notify
Notification n = b.build();
RemoteViews bigView = new RemoteViews(context.getPackageName(),
R.layout.remoteview_bigimage_push);
bigView.setImageViewBitmap(R.id.imageview, bigBitmap);
n.bigContentView = bigView;
RemoteViews normalView = new RemoteViews(context.getPackageName(),
R.layout.remoteview_nmimage_push);
normalView.setImageViewBitmap(R.id.imageview, normalBitmap);
n.contentView = normalView;
跑起来!完美!
然后把demo向项目里面挪,一个notify控制类,两个布局,没了,很简单!
运行项目,结果 Bad Notification from package ....,这个问题很常见,难道我布局有Notifiction不支持的控件,不对啊,我布局里目前只有ImageView,然后想到的是没设置ContentIntent,review了一遍,发现设置了,哎,奇怪了!
一路找。。。
最后发现两个layout文件放到 layout-land/目录下,坑爹的Androidstudio!
最后放到layout下,问题解决!
放下效果图吧: