Kennett Kennett - 8 months ago 58
Android Question

Android Outofmemory drawable

this is my drawable in array for my viewpager, when i run it, i results in out of memory error, is there any way to reduce the image size or etc?
i do lots of search but i can't use them as well..
please help...

GalImages = new int[] { R.drawable.tutorials_01_android_en,R.drawable.tutorials_02_android_en,R.drawable.tutorials_03_android_en,R.drawable.tutorials_04};break

public Object instantiateItem(ViewGroup container, int position) {

ImageView imageView = new ImageView(context);
final int temp = position;

((ViewPager) container).addView(imageView, 0);
imageView.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {}
return imageView;

Answer Source

Its a known bug, its not because of large files. Since Android Caches the Drawables, its going out of memory after using few images. But i found alternate way for it, by skipping the android default cache system.

Soultion: Create a drawable folder in Assets and move the images to "drawable" folder in assets and use the following function to get BitmapDrawable

public static Drawable getAssetImage(Context context, String filename) throws IOException {
    AssetManager assets = context.getResources().getAssets();
    InputStream buffer = new BufferedInputStream(("drawable/" + filename + ".png")));
    Bitmap bitmap = BitmapFactory.decodeStream(buffer);
    return new BitmapDrawable(context.getResources(), bitmap);

Refrence :

Also that add the line below in your manifest file