2012-01-16 9 views
4

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

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

+0

Я помню, как что-то читал о менеджере обоев, пытаясь изменить размер изображений автоматически назад ... Возможно, вам стоит взглянуть на статьи об этом. – Max

+0

Посмотреть это сообщение: http://stackoverflow.com/questions/2010399/android-wallpaper-background-dimensions для информации о правильных размерах для обоев. – kabuko

+0

У меня есть подходящий сайт, но, как сказал Макс, «менеджер обоев пытается автоматически изменить размер изображений». И вопрос в том, могу ли я избежать этого? – Ruuhkis

ответ

0

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

0

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

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

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

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

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

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

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

Смежные вопросы