为什么我在包含setWallpaper(bmp)的行上出现弃用错误,如何解决?
Error: The method setWallpaper(Bitmap) from the type Context is deprecated
switch(v.getId()){ case R.id.bSetWallpaper: try { getApplicationContext().setWallpaper(bmp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break;
解决方法
当某些东西被弃用时,这意味着开发人员已经创建了一种更好的方法,并且您不应再使用旧的或弃用的方式.被弃用的东西将来会被删除.
在您的情况下,如果您有图像路径,设置壁纸的正确方法如下:
is = new FileInputStream(new File(imagePath)); bis = new BufferedInputStream(is); Bitmap bitmap = BitmapFactory.decodeStream(bis); Bitmap useThisBitmap = Bitmap.createScaledBitmap( bitmap,parent.getWidth(),parent.getHeight(),true); bitmap.recycle(); if(imagePath!=null){ System.out.println("Hi I am try to open Bit map"); wallpaperManager = WallpaperManager.getInstance(this); wallpaperDrawable = wallpaperManager.getDrawable(); wallpaperManager.setBitmap(useThisBitmap);
如果您有图像URI,请使用以下内容:
wallpaperManager = WallpaperManager.getInstance(this); wallpaperDrawable = wallpaperManager.getDrawable(); mImageView.setImageURI(imagepath);
从Maidul回答this问题.