2016-06-09 87 views
0

我试图在android上更换壁纸。但它突出显示了图像的一部分。然而,如果我锁定手机,锁定屏幕会显示完美缩放的图像,但只有在应用程序正在运行时,退出时锁定屏幕才会显示与背景相同的图像?在android上更换壁纸

help!?

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

回答

0

你必须使用

public void setStream (InputStream data) method: 

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

,或者,如果你有像然后使用URI:

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