1. Style Notification
- 안드로이드 4.1에 새롭게 추가된 부분으로 4.0 이하 버전에서는 기본 알림 메세지로 표시된다.
- 안드로이드 4.1 이후 부터는 알림 메세지를 접었다 펼쳤다 하면서 부가 정보를 표기할 수 있다.
2. Big Picture Style
- 메세지를 펼쳤을 때 이미지를 표시할 수 있다.
1. 빌더 세팅
2. Big Picture Style 세팅
3. Notification 객체 만들어서 띄우기
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener { view ->
// 1. 빌더 세팅
var builder = getNotificationBuilder("style", "style Notification")
builder.setContentTitle("Big Picture")
builder.setContentText("빅픽쳐 노티피케이션")
builder.setSmallIcon(android.R.drawable.ic_media_next)
// 2. 빅픽쳐 스타일 세팅
var big = NotificationCompat.BigPictureStyle(builder)
var bitmap = BitmapFactory.decodeResource(resources, R.drawable.images)
big.bigPicture(bitmap)
big.setBigContentTitle("빅컨텐트타이틀")
big.setSummaryText("서머리")
// 3. 노티피케이션 객체 만들어서 띄우기
var notification = builder.build()
var manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(10, notification)
}
}
fun getNotificationBuilder(id:String, name:String) : NotificationCompat.Builder{
var builder:NotificationCompat.Builder? = null
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
// 매니저 생성
var manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// 채널 생성
var channel = NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH)
channel.enableLights(true)
channel.lightColor = Color.RED
channel.enableVibration(true)
manager.createNotificationChannel(channel)
//채널의 아이디를 넣어서 채널 아이디가 세팅된게 넘어가면서 채널별로 그룹화해서 노피티케이션을 만들 수 있다.
builder = NotificationCompat.Builder(this, id)
}
else
{
// 8.0 이하에서는 노티피케이션 채널을 만들어줄 필요가 없다.
builder = NotificationCompat.Builder(this)
}
return builder
}
3. Big Text Style
- 메세지를 펼쳤을 때 장문의 문자열을 표시할 수 있다.
button2.setOnClickListener { view ->
// 1. 빌더 세팅
var builder = getNotificationBuilder("style", "style Notification")
builder.setContentTitle("Big Picture")
builder.setContentText("빅픽쳐 노티피케이션")
builder.setSmallIcon(android.R.drawable.ic_media_next)
// 2. 빅텍스트 스타일 세팅
var big = NotificationCompat.BigTextStyle(builder)
big.setSummaryText("서머리 텍스트")
big.setBigContentTitle("빅 컨텐트 타이틀")
big.bigText("동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록동해물과 백두산이 마르고 닳도록 동해물과 백두산이 마르고 닳도록 ")
// 3. 노티피케이션 객체 만들어서 띄우기
var notification = builder.build()
var manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(10, notification)
}
4. InBox Style
- 메세지를 펼쳤을 때 문자열들을 표시할 수 있다.
button3.setOnClickListener { view ->
// 1. 빌더 세팅
var builder = getNotificationBuilder("style", "style Notification")
builder.setContentTitle("Big Picture")
builder.setContentText("빅픽쳐 노티피케이션")
builder.setSmallIcon(android.R.drawable.ic_media_next)
// 2. 인박스 스타일 세팅
var inbox = NotificationCompat.InboxStyle(builder)
inbox.setSummaryText("인박스 서머리")
inbox.addLine("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
inbox.addLine("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
inbox.addLine("ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc")
inbox.addLine("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd")
// 3. 노티피케이션 객체 만들어서 띄우기
var notification = builder.build()
var manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(10, notification)
}
'Deperecated > Android_강의' 카테고리의 다른 글
안드로이드 - 쓰레드 (0) | 2020.02.14 |
---|---|
안드로이드 - 권한 및 쓰레드 (0) | 2020.02.14 |
안드로이드 - Pending Intent (0) | 2020.02.14 |
안드로이드 - Notification (0) | 2020.02.14 |
안드로이드 - 다이얼로그 (0) | 2020.02.13 |