是否可以设置壁纸就像使用Android附带的应用程序一样?

Android有办法设置主屏幕壁纸.用户点击“菜单”,然后选择“壁纸”以从系统设置壁纸.生成的壁纸图像在纵向和横向模式下都可以正确缩放.

我做了一个小应用程序,允许更改主屏幕壁纸.它工作正常,但我不知道在将图像设置为壁纸后,将图像设置为正确的大小是什么秘诀.

我用1280×1084的png图像做了这个,并尝试使用320×240的图像同样的东西,并且当设置为主屏幕壁纸时它们都显示相同的大小.

我找了关于如何像他们一样设置壁纸的教程和示例,但无法找到如何做到这一点.你能告诉我一个代码示例,告诉我这个秘密,以便生成的壁纸正确缩放吗?

我确定必须使用某种WallpaperManager设置,但我不知道使用哪种设置.

提前致谢.

这是我用来设置壁纸的代码

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    WallpaperManager myWallpaperManager = WallpaperManager
            .getInstance(getApplicationContext());

    try {
        myWallpaperManager.setResource(R.drawable.kabanight1);
    } catch (IOException e) {
        // Todo Auto-generated catch block
        e.printstacktrace();
    }
}

诚然,
伊马德

解决方法

我只是看着这个.虽然您可以从Launcher .apk中的壁纸图像中观察实际文件大小,但更好的方法查询WallpaperManager以获得所需的大小(与方向无关).

final WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);
final int fullWidth = wallpaperManager.getDesiredMinimumWidth();
final int fullHeight = wallpaperManager.getDesiredMinimumHeight();

此时,我创建了一个确切所需大小的新位图,并将自己的位图写入其中.棘手的部分是计算填充和缩放,以及计算状态栏.但是,一旦你将这个尺寸合适的图像写成壁纸,它就应该像系统壁纸一样工作.

现在的缺点 – 图像(尺寸大于屏幕)可以正确缩放,但您会注意到它的裁剪方式会有所不同.

我想你需要一个动态壁纸,如果你想根据方向调整图像大小(最大化图像的大小,但不要裁剪它).

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...