2016-06-09 2 views
0

J'ai essayé de changer de fond d'écran sur Android. mais il montre une partie de l'image. Toutefois, si je verrouille le téléphone, l'écran de verrouillage affiche l'image parfaitement mise à l'échelle, mais seulement lorsque l'application est en cours d'exécution, à la sortie de l'écran de verrouillage affiche la même que l'arrière-plan?changer de fond d'écran sur android

aide !?

WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 



    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    int width = metrics.widthPixels; 
    int height = metrics.heightPixels; 



    Bitmap original = BitmapFactory.decodeResource(getResources(), R.drawable.day_cloudy); 
    Bitmap resized = Bitmap.createScaledBitmap(original, width, height, true); 





    try { 
     wallpaperManager.clear(); 
     wallpaperManager.setWallpaperOffsetSteps(1, 1); 
     wallpaperManager.suggestDesiredDimensions(resized.getWidth(), resized.getHeight()); 


     wallpaperManager.setBitmap(resized); 
     Toast.makeText(this, "Wallpaper Set", Toast.LENGTH_SHORT).show(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

Répondre

0

Vous devez utiliser

public void setStream (InputStream data) method: 

InputStream ins = new URL("absolute/path/of/image").openStream(); 
WallpaperManager wpm = WallpaperManager.getInstance(context); 
wpm.setStream(ins); 

OU, si vous avez URI image, utilisez alors:

WallpaperManager wpm = WallpaperManager.getInstance(context); 
wpm.setResource(Uri.of.image);