6

を含む行で非推奨エラーが発生するのはなぜ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

4 に答える 4

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の回答から。

于 2013-03-03T20:02:49.857 に答える
5

「非推奨」とは、使用している特定のコードが、その機能を実現するための推奨される方法ではなくなったことを意味します。特定の方法のドキュメントを参照する必要があります。推奨される方法へのリンクがその場所に提供されている可能性が高くなります。

于 2013-03-03T20:02:33.927 に答える
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();
}
于 2013-03-18T01:42:50.720 に答える
1

Context.setWallpaper() は廃止され、新しい API リリースで削除される可能性があるため、代わりにWallpaperManager.setStream()を使用する必要があります。

于 2013-03-03T20:04:42.237 に答える