微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以设置壁纸就像使用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();

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐