gpt4 book ai didi

android - 是否可以像使用 Android 自带的应用程序那样设置壁纸?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:50 25 4
gpt4 key购买 nike

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

我做了一个允许更改主屏幕壁纸的小应用程序。它工作正常,但我无法找出将图像设置为墙纸后使其大小正确的秘诀。

我对 1280x1084 的 png 图像进行了此操作,还对 320x240 的图像进行了同样的操作,当设置为主屏幕墙纸时,它们都显示相同的大小。

我查找了有关如何像他们一样设置墙纸的教程和示例,但找不到具体操作方法。您能否向我展示一个代码示例,向我展示其中的 secret ,以便正确缩放生成的墙纸?

我确定一定要使用某种 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 - 是否可以像使用 Android 自带的应用程序那样设置壁纸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com