以编程方式设置主屏幕壁纸(更改主屏幕和锁定屏幕)
Posted
技术标签:
【中文标题】以编程方式设置主屏幕壁纸(更改主屏幕和锁定屏幕)【英文标题】:Setting Home Screen wallpaper programmatically (Changing home screen and lock screen) 【发布时间】:2019-07-22 12:44:42 【问题描述】:如果您单击“设置为墙纸按钮”,我有一个更改主屏幕墙纸的应用程序,但如果您单击此按钮更改主屏幕并锁定屏幕墙纸。 我想只是更换主屏幕壁纸
这里是代码
button1.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try
myWallpaperManager.setResource(+ R.drawable.image_0);
Toast.makeText(
getBaseContext(),
"Wallpaper has been updated",
Toast.LENGTH_SHORT).show();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
);
【问题讨论】:
【参考方案1】:您可以使用 WallpaperManager 将图像设置为墙纸。
使用...将图像设置为墙纸
myWallpaperManager.setStream(fileInputStream, null, true, WallpaperManager.FLAG_SYSTEM);
要将图像设置为锁定屏幕使用...
myWallpaperManager.setStream(fileInputStream, null, false, WallpaperManager.FLAG_LOCK);
在这个文件中,InputStream 是您要设置为墙纸的图像文件的输入流。
您还可以使用...将位图设置为墙纸和锁定屏幕
壁纸:
myWallpaperManager.setBitmap(imageBitmap,null,true,WallpaperManager.FLAG_SYSTEM);
对于锁屏:
myWallpaperManager.setBitmap(imagebitmap, null, false, WallpaperManager.FLAG_LOCK);
【讨论】:
【参考方案2】:你可以通过使用 FLAG_SYSTEM 来做到这一点
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
wallpaperManager.setStream(input, null, false, WallpaperManager.FLAG_SYSTEM)
【讨论】:
以上是关于以编程方式设置主屏幕壁纸(更改主屏幕和锁定屏幕)的主要内容,如果未能解决你的问题,请参考以下文章