Android WallpaperManager cosecha la imagen

Estoy trabajando en una simple aplicación de fondo de pantalla de algunas imágenes que tengo. Son archivos .png en carpetas dibujables.

Estos son algunos fragmentos de código:

WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); .... myWallpaperManager.setResource(R.drawable.image1); 

No importa qué tamaño o resolución parezco utilizar, cuando el papel pintado se fija cosecha la imagen original. Cuando utilizo la misma imagen que un fondo es el tamaño correcto y muestra toda la imagen. Pensé que podría ser un problema con mi emulador por lo que he intentado ejecutarlo en un dispositivo real (HTC eris) y estoy teniendo el mismo problema. He hecho la imagen del tamaño de la pantalla y la resolución de la eris y todavía está recortándolo. Luego hice la imagen de sólo una pulgada de alto y una resolución de 100 dpi. Era muy pixelated en el eris, pero todavía cosechó la imagen.

Cualquier ayuda sería muy apreciada.

Intenté agregar algunas imágenes para mostrar el antes y el después, pero como un usuario más nuevo me impedían hacerlo.

Compruebe los valores devueltos por http://developer.android.com/reference/android/app/WallpaperManager.html#getDesiredMinimumWidth () y http://developer.android.com/reference/android/app/WallpaperManager.html#getDesiredMinimumHeight () Y tratar de utilizar estos valores como las dimensiones de su fondo de pantalla.

Yo tuve el mismo problema. Hice una imagen que es el tamaño de la pantalla y añadir relleno a la imagen para que sea tan grande como el WallpaperManager getDesiredMinimumWidth () y getDesiredMinimumHeight ().

Parecía mejor tener algún código añadir automáticamente el relleno de modo que es lo que usé a continuación. Asegúrese de que la imagen tenga el mismo tamaño que la pantalla.

 private void setWallpaper() { try { WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); //import non-scaled bitmap wallpaper BitmapFactory.Options options = new BitmapFactory.Options(); options.inScaled = false; Bitmap wallpaper = BitmapFactory.decodeResource(getResources(), R.drawable.wallpaper, options); if (wallpaperManager.getDesiredMinimumWidth() > wallpaper.getWidth() && wallpaperManager.getDesiredMinimumHeight() > wallpaper.getHeight()) { //add padding to wallpaper so background image scales correctly int xPadding = Math.max(0, wallpaperManager.getDesiredMinimumWidth() - wallpaper.getWidth()) / 2; int yPadding = Math.max(0, wallpaperManager.getDesiredMinimumHeight() - wallpaper.getHeight()) / 2; Bitmap paddedWallpaper = Bitmap.createBitmap(wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight(), Bitmap.Config.ARGB_8888); int[] pixels = new int[wallpaper.getWidth() * wallpaper.getHeight()]; wallpaper.getPixels(pixels, 0, wallpaper.getWidth(), 0, 0, wallpaper.getWidth(), wallpaper.getHeight()); paddedWallpaper.setPixels(pixels, 0, wallpaper.getWidth(), xPadding, yPadding, wallpaper.getWidth(), wallpaper.getHeight()); wallpaperManager.setBitmap(paddedWallpaper); } else { wallpaperManager.setBitmap(wallpaper); } } catch (IOException e) { Log.e(TAG,"failed to set wallpaper"); } } 
  • Admob no llena todo el ancho
  • ¿Cómo varía el tamaño de la instalación de la aplicación en el teléfono?
  • Android: Tamaño de texto de Canvas.drawText () en diferentes resoluciones de pantalla
  • La barra de direcciones del navegador Mobile Webkit cambia $ (ventana) .height (); Haciendo el fondo-tamaño: la cubierta rescale cada vez
  • Android xxxhdpi resolución extraíble auto redimensionar
  • Android: layout_height 50% del tamaño de la pantalla
  • Tamaño de imagen de mapa de bits de Android
  • Diferentes tamaños en 2 dispositivos, incluso si utilizo "dp"
  • WebView no está llenando toda la pantalla del dispositivo o el emulador
  • Cómo obtener el tamaño de un cuadro de diálogo personalizado en android?
  • Android y el soporte de múltiples diseños de pantallas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.