Android 2.3开始可以通过设置contentView自定义通知栏的布局,但高度却无法改变。

从4.1开始,Android提供了bigContentView,可以自定义通知栏的高度,并提供了InboxStyle、BigTextStyle、BigPictureStyle三种样式。

要实现多行内容的通知,可以使用BigTextStyle,代码很简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* 弹出通知
* @param context 上下文
* @param id 通知ID
* @param icon 图标
* @param text 状态栏文字
* @param title 通知栏标题
* @param content 通知栏内容
* @param intent
*/
public static void notify(Context context, int id, int icon, String text,
String title, String content, Intent intent) {
long when = System.currentTimeMillis();
PendingIntent pendingIntent = PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification;
final int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
notification = new Notification(icon, text, when);
notification.setLatestEventInfo(context, title, content, pendingIntent);
notification.flags = Notification.FLAG_AUTO_CANCEL;
}else{
Notification.Builder builder = new Notification.Builder(context)
.setWhen(when)
.setSmallIcon(icon)
.setTicker(text)
.setContentTitle(title)
.setContentIntent(pendingIntent)
.setPriority(Notification.PRIORITY_HIGH)
.setAutoCancel(true);
notification = new Notification.BigTextStyle( builder )
.bigText(content)
.build();
}
((NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE))
.notify(id, notification);
}