对于不推荐使用的方法意味着什么,以及如何解决产生的错误?

时间:2013-03-03 19:59:00

标签: java android android-wallpaper

为什么我在包含setWallpaper(bmp)的行上收到弃用错误,如何解决?

  

错误:不推荐使用Context类型的方法setWallpaper(Bitmap)

switch(v.getId()){
 case R.id.bSetWallpaper:
try {
            getApplicationContext().setWallpaper(bmp);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        break;

4 个答案:

答案 0 :(得分:11)

当某些东西被弃用时,这意味着开发人员已经创建了一种更好的方法,并且您不应再使用旧的或弃用的方式。被弃用的东西将来会被删除。

在您的情况下,如果您有图像路径,设置壁纸的正确方法如下:

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问题的回答。

答案 1 :(得分:5)

“已弃用”表示您使用的特定代码不再是实现该功能的推荐方法。您应该查看给定方法的文档,它很可能会提供指向它的推荐方法的链接。

答案 2 :(得分:3)

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

try {
    myWallpaperManager.setBitmap(bmp);
}
catch (IOException e) {
    Toast.makeText(YourActivity.this, 
                   "Ooops, couldn't set the wallpaper", 
                   Toast.LENGTH_LONG).show();
}

答案 3 :(得分:1)

您应该使用WallpaperManager.setStream()而不是Context.setWallpaper(),因为它已弃用,可能会在新的API版本中删除。