728x90
안드로이드 4.1에 새롭게 추가된 부분으로 4.0 이하 버전에서는 기본 알림 메시지로 표시된다.
안드로이드 4.1 이후 부터는 알림 메시지를 접었다 폈다 하면서 부가 정보를 표시할 수 있다.
Big Picture Style
메시지를 펼쳤을 때 이미지를 표시할 수 있다.
Big Text Style
메시지를 펼쳤을 때 장문의 문자열을 표시할 수 있다.
InBox Style
메시지를 펼쳤을 때 문자열 들을 표시할 수 있다.
package com.example.stylenotification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.graphics.BitmapFactory
import android.graphics.Color
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.core.app.NotificationCompat
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val builder1 = getNotificationBuilder("style","style Notification")
builder1.setContentTitle("Big Picture")
builder1.setContentText("Big Picture Notification")
builder1.setSmallIcon(android.R.drawable.ic_menu_camera)
// BigPicture Notification 객체를 생성한다.
val big = NotificationCompat.BigPictureStyle(builder1)
// 보여줄 이미지를 설정한다.
val bitmap = BitmapFactory.decodeResource(resources,R.drawable.img_android)
big.bigPicture(bitmap)
big.setBigContentTitle("Big Content Title")
big.setSummaryText("Summary Text")
val notification = builder1.build()
val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(10,notification)
}
button2.setOnClickListener {
val builder1 = getNotificationBuilder("style","style Notification")
builder1.setContentTitle("Big Text")
builder1.setContentText("Big Text Notification")
builder1.setSmallIcon(android.R.drawable.ic_menu_camera)
// Big Text Notification을 생성한다.
val big = NotificationCompat.BigTextStyle(builder1)
big.setSummaryText("Summary Text")
big.setBigContentTitle("Big Content Title")
big.bigText("afsdgajfhdsakfhksdafkjsdkjfsdkfksdhfkkassdfhksdhf")
val notification = builder1.build()
val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(20,notification)
}
button3.setOnClickListener {
val builder1 = getNotificationBuilder("style","style Notification")
builder1.setContentTitle("INBOX")
builder1.setContentText("INbox Notification")
builder1.setSmallIcon(android.R.drawable.ic_menu_camera)
// InBox Style Notification을 생성한다.
val inbox = NotificationCompat.InboxStyle(builder1)
inbox.setSummaryText("Summary Text")
inbox.addLine("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
inbox.addLine("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
inbox.addLine("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
inbox.addLine("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC")
val notification = builder1.build()
val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(30,notification)
}
}
fun getNotificationBuilder(id: String, name: String): NotificationCompat.Builder {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val channel = NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH)
channel.enableLights(true)
channel.lightColor = Color.RED
channel.enableVibration(true)
manager.createNotificationChannel(channel)
val builder1 = NotificationCompat.Builder(this, id)
return builder1
} else {
val builder2 = NotificationCompat.Builder(this)
return builder2
}
}
}
728x90
'안드로이드 > 메세징' 카테고리의 다른 글
안드로이드 Message Notification (0) | 2022.06.13 |
---|---|
안드로이드 PendingIntent (0) | 2022.06.13 |
안드로이드 Notification (0) | 2022.06.13 |
안드로이드 항목 선택 Dialog (0) | 2022.06.13 |
안드로이드 ListDialog (0) | 2022.06.13 |