Обои для Android, сделанные неправильно

Поэтому я давно разрабатывал сменщик обоев и получил его. Через некоторое время я начал получать комментарий, чтобы обои не изменялись правильно. Также я пробовал разные размеры emus, и они были правы. Я масштабирую растровое изображение правильно и т. Д., Но как-то андроид имеет тенденцию к масштабированию обоев еще больше! Есть ли способ избежать этого? Мой код:

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); 

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

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

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

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

 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int height = metrics.heightPixels; int width = metrics.widthPixels; Bitmap bitmap = Bitmap .createScaledBitmap(whatever, width, height, true); 

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

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

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

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

Intereting Posts
Android, почему метод HttpPost возвращает два разных результата в Android v2.3 и Android v4.0.3? Как начать работу с intenservice? Какой простой способ программно установить VPN-соединение? (Pptp) Использует ли файлы .aidl? Размер прокрутки прокрутки Android ScrollView Что означает «Ошибка приема трансляции?»? Android Bluetooth Socket не дает ожидаемого подтверждения Как удалить лишнее пространство из меню Gradle: идентификатор ресурса не найден для атрибута при использовании flavors и packageName Модуль Google map v2. Android-приложение не отображает карту внутри карты Android Face Detection и применение цвета на некоторых участках лица, таких как cheeck, губы и т. Д. Как записать звук с Bluetooth-гарнитуры (startBluetoothSco ()) Как заблокировать ориентацию фрагмента без фиксации ориентации активности? Android-эмулятор не получает push-уведомления Прозрачная навигация без отображения макета под панелью состояния Android – периодическая справочная служба – совет