2013-03-03 6 views
6

Dlaczego pojawia się komunikat o błędzie z powodu wycofania się z wiersza zawierającego setWallpaper(bmp) i jak mogę go rozwiązać?Co to znaczy, że metoda ma być przestarzała i jak mogę rozwiązać wynikające z niej błędy?

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

Myślę, że popełniłeś błąd w swoim pytaniu. Czy możesz wyjaśnić błąd dla nas? – christopher

+0

Przykro mi, że zredagowałem wpis, spóźniłem się przez przypadek. – TAM

+6

"przestarzałe" oznacza, że ​​nie powinieneś go używać. –

Odpowiedz

11

Gdy coś jest nieaktualne, oznacza to, że programiści utworzyli lepszy sposób robienia tego i że nie powinniśmy dłużej używać starego lub przestarzałego sposobu. Rzeczy, które są przestarzałe, mogą zostać usunięte w przyszłości.

W twoim przypadku, poprawny sposób ustawić tapetę, jeśli masz ścieżka obrazu jest następująca:

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

Jeśli masz obrazek URI, a następnie użyć następujących:

wallpaperManager = WallpaperManager.getInstance(this); 
wallpaperDrawable = wallpaperManager.getDrawable(); 
mImageView.setImageURI(imagepath); 

Z odpowiedzi Maidula na pytanie this.

+0

Dzięki Wezwę, próbując tego, kiedy wrócę do kodu. – TAM

5

„Nieaktualne” oznacza, że ​​dany kod używasz nie jest zalecaną metodą osiągnięcia tego funkcjonalność. Powinieneś spojrzeć na dokumentację dla danej metody i najprawdopodobniej dostarczysz link do zalecanej metody w jej miejscu.

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