【问题标题】:Get current wallpaper获取当前壁纸
【发布时间】:2012-04-13 22:09:46
【问题描述】:

我对 Android 编程很陌生,所以请耐心等待。

我想知道是否有一种方法可以检索 android 设备上的当前壁纸并将其保存到应用代码中的变量中。

谢谢

【问题讨论】:

标签: android methods wallpaper


【解决方案1】:
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
final Drawable wallpaperDrawable = wallpaperManager.getDrawable();

【讨论】:

  • 如果设置了动态壁纸会怎样?
  • @S.D.在这种情况下,我不知道会返回什么,但您可以调用“getWallpaperInfo”来检查它是否是动态壁纸:developer.android.com/reference/android/app/…
  • @S.D.在这种情况下,据我所知,最后设置的壁纸将被返回。
  • 你知道这是否需要任何权限吗?
  • 从 android 8.1 版本开始,WallpaperManager.getDrawable() 将需要 READ_EXTERNAL_STORAGE 权限,遗憾的是官方文档中没有提及。
【解决方案2】:

这是这样做的好方法:

WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable wallpaperDrawable = wallpaperManager.getDrawable();

【讨论】:

    【解决方案3】:

    这更进一步并保存文件。您当然需要异常处理,并且需要外部写入权限。

    import java.io.FileOutputStream;
    import android.graphics.Bitmap;
    import android.app.WallpaperManager;
    
    WallpaperManager wmInstance = WallpaperManager.getInstance(context);
    
    wmInstance
        .getDrawable()
        .getBitmap()
        .compress(Bitmap.CompressFormat.PNG, 100,
            new FileOutputStream("/storage/emulated/0/output.png"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 2011-06-18
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多