我正在使用Glide在ImageView中缓存图像。 现在我想在不使用WallpaperManager的情况下将ImageView中的图像设置为手机的壁纸,因为WallpaperManager不提供裁剪/平移图像的选项,就像默认图库应用程序的壁纸设置一样。
我想使用以下方式设置壁纸:
Intent.ACTION_ATTACH_DATA
或
Intent.ACTION_SET_WALLPAPER
但我不知道如何将Bitmap / drawable从ImageView传递给该意图。 这是我的代码:
Option Explicit
Sub test()
Dim lr As Long
With ThisWorkbook.Worksheets("Sheet1") '<== change this to your workbook.worksheet e.g. maybe wb_gr.sh_9_overtid_år
lr = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("D3:D" & lr).Value = .Range("D3")
End With
End Sub
当我执行此代码时,我会得到一个带有已安装画廊的上拉菜单来选择壁纸。 当我选择其中一个时,我会得到一个Toast-
&#34;无法加载图片。&#34;
这可能是因为我没有将任何图像传递给Intent。 请帮助,我已经搜索了好几个小时。
答案 0 :(得分:0)
所以,当我解决问题时,现在我在这里编写解决方案(以防其他人需要它)。
myDir = new File(root + "/Wallpy/"); //this is the name of the containing folder
final File imageFile = new File(myDir, "abcd.jpg"); //name of the image file
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(Uri.fromFile(imageFile), "image/*");
startActivity(Intent.createChooser(intent, "Select Wallpaper"));
其中imageFile
是需要设置为墙纸的文件。