Как поместить все изображение на экран в качестве обоев

Я разрабатываю приложение, которое выбирает изображение из галереи, а затем устанавливает это изображение в качестве обоев. Но здесь проблема в том, что только часть изображения задается как обои не для всего изображения, но я хочу установить все изображение в качестве обоев. Не могли бы вы рассказать мне, как это можно сделать ???

Вот мой код …

public class Scaleimage extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String FileName; File file = new File("/sdcard/pictures"); File[] imageFiles = file.listFiles( ); if(imageFiles.length > 0 ) { FileName = imageFiles[0].getName(); final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext()); Bitmap myBitmap = BitmapFactory.decodeFile("/sdcard/pictures" + "/" + FileName); DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int height = displayMetrics.heightPixels; int width = displayMetrics.widthPixels << 1; myBitmap = Bitmap.createScaledBitmap(myBitmap,width, height, true); try { wallpaperManager.setBitmap( myBitmap); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

Установите размер обоев на размер изображения:

 WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE); wm.setBitmap(bitmap); wm.suggestDesiredDimensions(w, h); 

И не забудьте добавить разрешения:

 <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/> <uses-permission android:name="android.permission.SET_WALLPAPER"/> 

Попробуйте, я протестировал его работу, надеюсь, он вам поможет:

 final WallpaperManager wallpaperManager = (WallpaperManager)getSystemService( Context.WALLPAPER_SERVICE); Bitmap myBitmap = Bitmap.createScaledBitmap(Const.cropped_bitmap, wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight(), true); wallpaperManager.suggestDesiredDimensions(wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight()); try { wallpaperManager.setBitmap(myBitmap); Toast.makeText(CropImageActivity.this, CropImageActivity.this.getString(R.string.wallpaper_has_been_set), 0).show(); } catch (IOException e) { e.printStackTrace(); Toast.makeText(CropImageActivity.this, "Wallpaper not set", 0).show(); }