【问题标题】:Android - how to set the wallpaper imageAndroid - 如何设置壁纸图片
【发布时间】:2009-12-26 19:49:48
【问题描述】:

是否可以通过编程方式设置 android 壁纸图像?我想创建一个从网络下载图像并定期更新主屏幕壁纸的服务。

【问题讨论】:

标签: android image wallpaper


【解决方案1】:

如果您有图片网址,请使用

WallpaperManager wpm = WallpaperManager.getInstance(context);
InputStream ins = new URL("absolute/path/of/image").openStream();
wpm.setStream(ins);

如果您有图像 URI,则使用

WallpaperManager wpm = WallpaperManager.getInstance(context);
wpm.setResource(Uri.of.image);

在您的清单文件中:

<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>

【讨论】:

  • 我对视频流尝试了同样的事情..但我得到了 --- “SkImageDecoder::Factory returned null”错误...这里有任何建议。
  • 是否可以将动态壁纸设置为应用程序的默认壁纸。
  • 这一定是一个新问题.. 无论如何你的默认壁纸是什么意思?
  • 感谢您的许可。我忘记了。
【解决方案2】:

来自开发者网站上的this page

public void setStream (InputStream data)

将当前系统壁纸更改为特定字节流。给出的 InputStream 被复制到持久存储中,现在将用作墙纸。目前它必须是 JPEG 或 PNG 图像。

【讨论】:

  • 注意API最早出现在2.0;如果您想支持旧版本,请使用 Context 上的原始 API 之一:developer.android.com/reference/android/content/…
  • 我为 videoistream 尝试了同样的事情......它不工作......对于 imageurl 它工作正常......任何想法/建议在这里。
【解决方案3】:

如果您有图像位图,则添加此功能以设置为墙纸:

  public void SetBackground(int Url) {

    try {
        File file = new File("/sdcard/sampleimage");
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), Url);
        bitmap.compress(CompressFormat.JPEG, 80, new FileOutputStream(file));
        Context context = this.getBaseContext();
        context.setWallpaper(bitmap);            
        Toast.makeText(getApplicationContext(), "Wallpaper has been set",             Toast.LENGTH_SHORT).show();            
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }         
}

您应该为此添加权限

<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>

希望它会起作用

【讨论】:

    【解决方案4】:

    好的,下面是 api 2.0 之前的做法:

    您需要调用 getApplicationContext.setWallpaper() 并将位图传递给它。

    此方法现已弃用。有关新方法的详细信息,请参阅 ChrisF 的回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      相关资源
      最近更新 更多