When I try to set wallpaper from Drawable resource I have received OutOfMemoryError
. How can I fix this problem?
Context context = v.getContext();
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);
try {
Drawable drawable = context.getResources().getDrawable(wpResID);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
wallpaperManager.setBitmap(bitmap);
bitmap.recycle();
bitmap = null;
} catch (IOException e) {
e.printStackTrace();
}
I have received this:
05-22 16:03:13.001: E/AndroidRuntime(30942): FATAL EXCEPTION: main
05-22 16:03:13.001: E/AndroidRuntime(30942): java.lang.OutOfMemoryError
05-22 16:03:13.001: E/AndroidRuntime(30942): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
05-22 16:03:13.001: E/AndroidRuntime(30942): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:521)
05-22 16:03:13.001: E/AndroidRuntime(30942): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:374)
05-22 16:03:13.001: E/AndroidRuntime(30942): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
05-22 16:03:13.001: E/AndroidRuntime(30942): at android.content.res.Resources.loadDrawable(Resources.java:2005)
05-22 16:03:13.001: E/AndroidRuntime(30942): at android.content.res.Resources.getDrawable(Resources.java:673)