如何在基于Kotlin的墙纸应用中将位图图像设置为锁屏墙纸?

时间:2020-05-27 14:51:19

标签: android android-studio kotlin wallpaper

我正在制作壁纸应用。在这里,我从Firebase数据库拍摄图像。我想为用户提供将其设置为墙纸和锁屏的选项。我可以通过以下代码将图片设置为墙纸

            val result:Bitmap=fl_iv.drawToBitmap()
            val wallpaperManager = WallpaperManager.getInstance(this)
            try {
                wallpaperManager.setBitmap(result)
            } catch (ex: IOException) {
                ex.printStackTrace()
            }

这里fl_iv是包含展示图像的imageview的框架布局。我在那里设置了另一个按钮,允许用户将图像用作“锁定屏幕”墙纸。

我尝试将此代码用于锁屏,但无法正常工作。

lock_screen.setOnClickListener {
            val wpManager = WallpaperManager.getInstance(this)
            val myBitmap: Bitmap = fl_iv.drawToBitmap()
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    wpManager.setBitmap(myBitmap, null, true, WallpaperManager.FLAG_LOCK)
                }
                else{
                    return@setOnClickListener
                }
            } catch (ex: IOException) {
                ex.printStackTrace()

            }
        }

1 个答案:

答案 0 :(得分:0)

您需要在wallpaperManager中指定FLAG_LOCK标志

wallpaperManager.setBitmap(result, null, true, WallpaperManager.FLAG_LOCK)