以编程方式设置动态壁纸

问题描述 投票:0回答:3

是否可以使用几行代码设置动态壁纸。例如,我想告诉我的用户可以使用动态壁纸“单击此处进行设置”。

android live-wallpaper
3个回答
34
投票

现在有两种方法可以实现这一点,因为 Jelly Bean 提供了直接设置动态壁纸的方法。此样板代码将选择可用的最佳方法。

Intent i = new Intent();

if(Build.VERSION.SDK_INT > 15){
    i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);

    String p = HypercaneWallpaperService.class.getPackage().getName();
    String c = HypercaneWallpaperService.class.getCanonicalName();        
    i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(p, c));
}
else{
    i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
}
getActivity().startActivityForResult(i, 0);

26
投票

好吧,只是为了让我不再因为过时的答案而投反对票。请参阅下面的错误 454 的答案,以获得更强大的解决方案,该解决方案会将用户直接发送到 Jelly Bean 及更高版本设备上的壁纸预览屏幕。

==========================================

以下是启动壁纸选择器的方法,用户可以从中选择您的壁纸。 Toast 只是向用户解释发生了什么的一种方式。

Toast toast = Toast.makeText(this, "Choose '<WALLPAPER NAME>' from the list to start the Live Wallpaper.",Toast.LENGTH_LONG);
toast.show();

Intent intent = new Intent();
intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
startActivity(intent);

0
投票

您应该使用 async_wallpaper 包来执行此操作。您可以通过 URL 轻松访问 mp4 文件并在您的应用程序中显示它们,也可以将它们应用到主屏幕上

© www.soinside.com 2019 - 2024. All rights reserved.