【问题标题】:Passing the image to the default wallpaper Application through intent通过意图将图像传递给默认壁纸应用程序
【发布时间】:2016-01-29 02:15:30
【问题描述】:

我们正在尝试使用我们的应用程序将下载的图像(并存储在我们自己的文件夹下的厨房中)设置为墙纸,并使用以下代码工作。

public void Set_Current_wallpaper() {
    File f = new File(mCurrentWallpaperPath); // mCurrentWallpaperPath is Our folder inside gallery
    Uri contentUri = Uri.fromFile(f);
    Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.setDataAndType(contentUri, "image/*");
    intent.putExtra("mimeType", "image/*");
    startActivity(intent);
}

问题是现在上面的代码运行下面是设置壁纸应用程序屏幕的样子,但是如果我们直接从图库中打开图像并设置为壁纸,这是壁纸设置屏幕的样子。为什么它以不同的方式打开?在此处附加实际与预期的屏幕。

实际结果

预期结果

【问题讨论】:

    标签: android android-wallpaper


    【解决方案1】:

    你试过 WallpaperManager 吗?

    WallpaperManager wallpapermgr = WallpaperManager.getInstance(this);
    wallpapermgr.setBitmap(yourbitmap);
    

    【讨论】:

    • 是的,但是它会直接设置壁纸,没有任何移动或放置图像的选项。
    • @zamrony-p-juhara 有关问题的建议或问题,您可以在评论中提出。
    • @michael,谢谢,但我需要 50 个声望才能对某人的回答发表评论;)。
    • @ZamronyP.Juhara 但将问题发布为答案(或错误答案)不会为您赢得声誉。做出一个好的答案可能需要一些额外的工作。达到 50 次代表后,您就可以发表评论了。
    • @unitedartinc 如果您使用 WallpaperManager 设置壁纸,您必须自己处理图像裁剪。我认为这就是为什么您的实际结果看起来与预期结果不同的原因。两个应用程序(默认壁纸选择器和图库)以不同方式处理自己的壁纸任务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多