안드로이드 개발자의 창고
[38일차 Android] 다양한 Notification 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 다양한 Notification
Big Picture
- 메시지를 펼쳤을 때 이미지를 표시할 수 있다.
button.setOnClickListener {
val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
builder.setContentTitle("Big Picture")
builder.setContentText("Big Picture Notification")
builder.setSmallIcon(android.R.drawable.ic_menu_search)
// BigPicture 설정
val big = NotificationCompat.BigPictureStyle(builder)
// 보여줄 이미지를 설정한다.
val bitmap = BitmapFactory.decodeResource(resources, R.drawable.img_android)
big.bigPicture(bitmap)
big.setBigContentTitle("Big Content Title")
big.setSummaryText("Summary Text")
val notification = builder.build()
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(10, notification)
}
결과
Big Text
- 메시지를 펼쳤을 때 장문의 문자열을 표시할 수 있다.
button2.setOnClickListener {
val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
builder.setContentTitle("Big Text")
builder.setContentText("Big Text Notification")
builder.setSmallIcon(android.R.drawable.ic_menu_search)
// BigText 설정
val big = NotificationCompat.BigTextStyle(builder)
big.setBigContentTitle("Big Content Title")
big.setSummaryText("Summary Text")
big.bigText("""동해물과 백두산이
|마르고 달도록
|하느님이 보우하사
|우리나라 만세
""".trimMargin())
val notification = builder.build()
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(20, notification)
}
결과
InBox
- 메시지를 펼쳤을 때 문자열 들을 표시할 수 있다.
- 한 줄의 문자열을 다수 보여준다.
button3.setOnClickListener {
val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
builder.setContentTitle("InBox")
builder.setContentText("InBox Notification")
builder.setSmallIcon(android.R.drawable.ic_menu_search)
// InBox 설정
val inbox = NotificationCompat.InboxStyle(builder)
inbox.setSummaryText("Summary Text")
inbox.setBigContentTitle("InBox Style")
inbox.addLine("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
inbox.addLine("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
inbox.addLine("ccccccccccccccccccccccccccccccccccccccc")
inbox.addLine("dddddddddddddddddddddddddddddddddddddddd")
inbox.addLine("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee")
inbox.addLine("ffffffffffffffffffffffffffffffffffffffff")
inbox.addLine("gggggggggggggggggggggggggggggggggggggggggg")
val notification = builder.build()
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(30, notification)
}
결과
Message
- 안드로이드 9.0에서 새롭게 추가된 Notification
- 다자간의 메시지 내용을 표시하는 용도로 사용한다.
button4.setOnClickListener {
val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
builder.setContentTitle("Message")
builder.setContentText("Message Notification")
builder.setSmallIcon(android.R.drawable.ic_menu_search)
// 사람1
val personBuilder1 = Person.Builder()
val icon1 = IconCompat.createWithResource(this@MainActivity, android.R.drawable.ic_dialog_email)
personBuilder1.setIcon(icon1)
personBuilder1.setName("홍길동")
var person1 = personBuilder1.build()
// 사람2
val personBuilder2 = Person.Builder()
val icon2 = IconCompat.createWithResource(this@MainActivity, android.R.drawable.ic_dialog_dialer)
personBuilder2.setIcon(icon2)
personBuilder2.setName("김길동")
var person2 = personBuilder2.build()
// Message Style 설정
val msg = NotificationCompat.MessagingStyle(person1)
// 대화 내용을 설정한다.
msg.addMessage("첫번째 메시지", System.currentTimeMillis(), person1)
msg.addMessage("두번째 메시지", System.currentTimeMillis(), person2)
msg.addMessage("세번째 메시지", System.currentTimeMillis(), person1)
msg.addMessage("네번째 메시지", System.currentTimeMillis(), person2)
builder.setStyle(msg)
val notification = builder.build()
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(40, notification)
}
결과
'Computer > Android' 카테고리의 다른 글
[39일차 Android] Broadcast Receiver (0) | 2023.06.27 |
---|---|
[39일차 Android] Thread, runOnUiThraad (0) | 2023.06.26 |
[38일차 Android] Pending Intent (0) | 2023.06.25 |
[38일차 Android] Notification (0) | 2023.06.25 |
[37일차 Android] Dialog (1) | 2023.06.23 |