2012-05-20 7 views
0

J'utilise actuellement l'extrait de code suivant pour définir mon fond d'écran. Mon problème est que l'image complète n'apparaît pas sur le fond d'écran. Il est toujours découpé et les objets manquants des vues de fond et de côté du papier peint. J'ai essayé de recadrer la photo, de redimensionner l'image, et j'ai aussi essayé de changer la résolution pour qu'elle corresponde à celle de mon émulateur. Rien de tout cela ne fonctionne. Est-ce que quelqu'un d'entre vous savent comment afficher l'image en utilisant le code ci-dessous:Fond d'écran Android Fond

Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.testimg2); 
try { 
     wpm.setBitmap(background); 
}catch(...){ 
.... 
} 

code mis à jour (que les cultures encore l'image):

int width = display.getWidth(); 
int height = display.getHeight(); 
Log.v("WALLPAPER", "width and height are " + width + " " + height); 
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.testimg2); 
Bitmap scaled = Bitmap.createScaledBitmap(background, width, height, true); 
+0

[Post est vieux, mais quand même ... Vous pouvez essayer quelque chose de similaire à ce] (http://stackoverflow.com/a/41347058/1685165) – Darko

Répondre

2

Le problème est probablement la résolution des désirs du gestionnaire de fond d'écran . C'est probablement le double de la largeur de l'écran, et il redimensionne le papier peint de sorte qu'il s'adapte aux paramètres désirés. Essayez ceci pour savoir ce que la résolution de fond d'écran désiré est, en utilisant

int minH, minW; 
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 
minH = myWallpaperManager.getDesiredMinimumHeight(); 
minW = myWallpaperManager.getDesiredMinimumWidth(); 
Log.d("TAG", "The desired wallpaper height is: " + minH + "; and the desired width is:" + minW); 

Après cela faire un Bitmap.createScaledBitmap avec MINH et minW. Et rappelez-vous de mettre cela lorsque vous créez le bitmap:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inScaled = false;