Java 安卓设置壁纸出错

Java 安卓设置壁纸出错,java,android,bitmap,resize,wallpaper,Java,Android,Bitmap,Resize,Wallpaper,所以我很久以前就在开发墙纸变换器,并将其发布。过了一段时间,我开始收到评论说墙纸的大小调整不正确。我也试过不同尺寸的电动车,他们是对的。我正确缩放位图等,但不知何故android倾向于重新缩放壁纸更大!有办法避免吗? 我的代码: Display display = parent.getWindowManager().getDefaultDisplay(); int width = display.getWidth();

所以我很久以前就在开发墙纸变换器,并将其发布。过了一段时间,我开始收到评论说墙纸的大小调整不正确。我也试过不同尺寸的电动车,他们是对的。我正确缩放位图等,但不知何故android倾向于重新缩放壁纸更大!有办法避免吗? 我的代码:

Display display = parent.getWindowManager().getDefaultDisplay(); 
                    int width = display.getWidth();
                    int height = display.getHeight();
                    Bitmap scaled = Bitmap.createScaledBitmap(wallpaper, width, height, true);
                WallpaperManager wm = WallpaperManager.getInstance(getContext());
                wm.setBitmap(scaled);
我也在尝试其他方法,但似乎没有任何帮助,即使我事后检查重新缩放的墙纸大小是否正确等:(
有什么想法吗?

我想你可以使用和指定的大小来调整壁纸的大小,而不是显示大小。这样,即使是定制家庭应用程序(如设备制造商和/或服务提供商可能设置的应用程序)设置的要求也会得到尊重,这意味着(很多)你的应用程序兼容性更高。

我也遇到了同样的问题,因为“调整大小”壁纸的大小相同,但分辨率不同

在我的例子中,代码解决了问题:

DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);

        int height = metrics.heightPixels;
        int width = metrics.widthPixels;

        Bitmap bitmap = Bitmap
                .createScaledBitmap(whatever, width, height, true);

我必须创建覆盖图像

  • 创建大小为
    wallpermanager.getDesiredMinimumWidth()
    x
    wallpermanager.getDesiredMinimumHeight()的空白图像

  • 使用,
    Display Display=getWindowManager().getDefaultDisplay();
    bmp=bitmap.createScaledBimat(bmp,Display.getWidth(),Display.getHeight(),false);

  • 将您的壁纸覆盖在空白图像的中心。并将覆盖设置为壁纸


  • 我记得不久前读到一些关于墙纸管理器尝试自动调整图像大小的文章…你可能想四处看看关于这方面的文章。请参阅本文:了解有关墙纸正确尺寸的信息。我有合适的网站,但正如Max所说的“墙纸管理器尝试自动调整图像大小”问题是,我能避免吗?