📜  在 Android 中创建包含图片的可扩展通知

📅  最后修改于: 2022-05-13 01:55:04.507000             🧑  作者: Mango

在 Android 中创建包含图片的可扩展通知

通知是由手机内的任何应用程序生成的一种消息,建议检查应用程序,这可能是从更新(低优先级通知)到应用程序中出现问题的任何内容(高优先级通知) .基本通知标题、一行文本以及用户可以执行的一个或多个操作作为响应组成。要提供更多信息,还可以通过应用本文所述的多个通知模板之一来创建大型、可扩展的通知。一些日常生活示例可能是 Whatsapp、Gmail、SMS 等在通知抽屉中附加的通知,用户可以在其中展开它并可以找到有关收到的消息的一些详细信息,例如发件人姓名、主题和部分文本Gmail 的情况。在本文中,让我们在包含图片的应用程序中创建一个通知。

可扩展通知

方法

步骤 1:创建一个新项目

要在 android studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。

第二步:修改activity_main.xml文件

在 XML 文件中只需添加一个按钮,单击该按钮将构建一个可展开的通知。通过从通知抽屉展开通知将显示一张图片。

activity_main.xml


  
    


MainActivity.kt
package com.example.expandablenotification
  
import android.app.*
import android.content.Context
import android.content.Intent
import android.graphics.BitmapFactory
import android.graphics.Color
import android.os.Build
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // Assigning variables to Notification Manager, Channel and Builder
    lateinit var notifManager: NotificationManager
    lateinit var notifChannel: NotificationChannel
    lateinit var notifBuilder: Notification.Builder
  
    // Evaluating ChannelID and Description for the Custom Notification
    private val description = "Some Description"
    private val channelID = "Some Channel ID"
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring the button which onclick generates a notification
        val btn = findViewById


第三步:修改MainActivity文件

现在,看看下面的 Kotlin 代码。首先,构建一个包含所有基本内容的通知,如创建通知中所述。然后,使用样式对象调用setStyle()并提供与每个模板对应的信息,如下所示。

MainActivity.kt

package com.example.expandablenotification
  
import android.app.*
import android.content.Context
import android.content.Intent
import android.graphics.BitmapFactory
import android.graphics.Color
import android.os.Build
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // Assigning variables to Notification Manager, Channel and Builder
    lateinit var notifManager: NotificationManager
    lateinit var notifChannel: NotificationChannel
    lateinit var notifBuilder: Notification.Builder
  
    // Evaluating ChannelID and Description for the Custom Notification
    private val description = "Some Description"
    private val channelID = "Some Channel ID"
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring the button which onclick generates a notification
        val btn = findViewById

输出:在模拟器上运行