2016-06-14 8 views
0

I Bild mit picasa api geladen hatte, aber Problem ist, ich nicht in der Lage bin volles Bild zu setzen, wie Bild Scroll Lage ist, hier ist der Code, den ich verwende, soSets Tapeten passen zu screenen

public class Utils { 
    private String TAG = Utils.class.getSimpleName(); 
    private Context _context; 
    private PrefManager pref; 

    // constructor 
    public Utils(Context context) { 
     this._context = context; 
     pref = new PrefManager(_context); 
    } 

    /* 
    * getting screen width 
    */ 
    @SuppressWarnings("deprecation") 
    public int getScreenWidth() { 
     int columnWidth; 
     WindowManager wm = (WindowManager) _context 
       .getSystemService(Context.WINDOW_SERVICE); 
     Display display = wm.getDefaultDisplay(); 

     final Point point = new Point(); 
     try { 
      display.getSize(point); 
     } catch (java.lang.NoSuchMethodError ignore) { 
      // Older device 
      point.x = display.getWidth(); 
      point.y = display.getHeight(); 
     } 
     columnWidth = point.x; 
     return columnWidth; 
    } 

    public void saveImageToSDCard(Bitmap bitmap) { 
     File myDir = new File(
       Environment 
       .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), 
       pref.getGalleryName()); 

     myDir.mkdirs(); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     String fname = "Wallpaper-" + n + ".jpg"; 
     File file = new File(myDir, fname); 
     if (file.exists()) 
      file.delete(); 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
      out.flush(); 
      out.close(); 
      Toast.makeText(
        _context, 
        _context.getString(R.string.toast_saved).replace("#", 
          "\"" + pref.getGalleryName() + "\""), 
        Toast.LENGTH_SHORT).show(); 
      Log.d(TAG, "Wallpaper saved to: " + file.getAbsolutePath()); 

     } catch (Exception e) { 
      e.printStackTrace(); 
      Toast.makeText(_context, 
        _context.getString(R.string.toast_saved_failed), 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 

    public void setAsWallpaper(Bitmap bitmap) { 
     WallpaperManager wallpaperManager = WallpaperManager.getInstance(_context); 
    try { 

     int widht=Resources.getSystem().getDisplayMetrics().widthPixels; 
     int height=Resources.getSystem().getDisplayMetrics().heightPixels; 
     wallpaperManager.suggestDesiredDimensions(widht, height); 
     wallpaperManager.setBitmap(bitmap); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     }} 
} 

Wo ich gehe falsch ............................................... ...

Antwort

0

Wird von einer Launcher-Anwendung gesteuert. Wenn Sie ein Hintergrundbild ohne Bildlauf verwenden möchten, installieren Sie eine Launcher-App, die nicht durch den Hintergrund scrollt. Android OS vor Jelly Bean erlaubt es Ihnen nicht, ein Live Wallpaper programmatisch einzustellen. Momentan unterstützt Jelly Bean das Ändern des Live Wallpaper programmatisch ohne Benutzerinteraktion