Android настройки обои не так - PullRequest
5 голосов
/ 17 января 2012

Так что я давно разрабатывал сменщик обоев и выпустил его.Через некоторое время я начал получать комментарии, обои не корректно меняют размеры.Также я пробовал разные размеры эму, и они были правы.Я правильно масштабирую растровое изображение и т. Д., Но каким-то образом 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);

Я пробовал и другие способы, но ничего не помогло, даже если впоследствии я проверю, соответствуют ли измененные размеры обоев правильному размеру и т. Д.: (Есть идеи?

Ответы [ 3 ]

0 голосов
/ 05 мая 2013

У меня была та же проблема, после изменения размера обоев был тот же размер, но разное разрешение.

В моем случае этот код решил проблему:

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

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

        Bitmap bitmap = Bitmap
                .createScaledBitmap(whatever, width, height, true);
0 голосов
/ 29 ноября 2013

Мне пришлось создать оверлейное изображение.

  1. Создать пустое изображение размером WallpaperManager.getDesiredMinimumWidth() x WallpaperManager.getDesiredMinimumHeight()

  2. Изменить размерРастровое изображение до размера экрана с помощью Display display = getWindowManager().getDefaultDisplay(); bmp = Bitmap.createScaledBitmap(bmp, display.getWidth(), display.getHeight(), false);

  3. Наложите обои в центре пустого изображения.И установите Overlay в качестве обоев.

0 голосов
/ 20 февраля 2012

Полагаю, вы можете изменить размер обоев, используя размер, указанный в WallpaperManager.getDesiredMinimumWidth () и WallpaperManager.getDesiredMinimumHeight () вместо размера экрана. Таким образом, будут соблюдаться даже требования, установленные пользовательскими домашними приложениями (например, те, которые могут быть установлены производителями устройств и / или поставщиками услуг), что означает (намного) большую совместимость для вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...