2013-03-03 13 views
6

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; 
+0

質問に間違いがあったと思います。あなたは私たちのためにエラーを明確にすることはできますか? – christopher

+0

ええ、私は投稿を編集して申し訳ありませんが、偶然にそれを逃しました。 – TAM

+6

"推奨されていません"は、使用しないでください。 –

答えて

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です。

+0

ありがとう、コードに戻ってみると、これを試してみるつもりです。 – TAM

5

「非推奨」を使用している特定のコードは、もはやその機能を達成するための推奨方法であることを意味しません。あなたは与えられたメソッドのドキュメンテーションを見なければなりません。それは、そのメソッドの推奨されるメソッドへのリンクを提供している可能性があります。

1

Context.setWallpaper()の代わりにWallpaperManager.setStream()を使用してください。非推奨であり、新しいAPIリリースでは削除される可能性があります。

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(); 
} 
関連する問題