Android Outofmemory dibujable

Este es mi dibujable en la matriz de mi viewpager, cuando lo ejecuto, i resulta en el error de memoria, hay alguna manera de reducir el tamaño de la imagen o etc? Hago mucha búsqueda, pero no puedo usarlos también .. por favor ayuda …

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 @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(context); final int temp = position; imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imageView.setImageResource(GalImages[position]); ((ViewPager) container).addView(imageView, 0); imageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) {} }); return imageView; } 

Es un error conocido , no es debido a los archivos grandes. Desde Android Caches el Drawables, su salir de la memoria después de usar algunas imágenes. Pero encontré la manera alternativa para él, saltando el sistema androide del escondrijo del defecto.

Soultion : Crear una carpeta dibujable en Activos y mover las imágenes a la carpeta "dibujable" en los activos y utilizar la siguiente función para obtener BitmapDrawable

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

Refrence: https://stackoverflow.com/posts/6116316/revisions

También añadir la línea de abajo en su archivo de manifiesto

 android:largeHeap="true" 

Trate de mover su drawables de MPI más bajo a HDPI o incluso a las carpetas de mayor dimensión como XHDPI dependiendo de su resolución.

Las dimensiones de mis imágenes oscilaban entre 400 y 800 píxeles. Almacé mis drawables en MDPI que lanzaba OutOfMemory en mi Galaxy S4. Los trasladé a HDPI y resolvió el problema.

Como mencionó Muhammad, intente mover sus imágenes en drawable (o MDPI) a una carpeta de dimensión diferente como HDPI o superior.

Siempre trate de utilizar PNG comprimidos en la medida de lo posible. Hay una gran cantidad de sitios en línea que se pueden comprimir en una escala muy grande.

Referencia: http://developer.android.com/guide/practices/screens_support.html

Mientras sus imágenes no sean muy grandes en tamaño, puede utilizar la carpeta drawable-nodpi para sus PNGs. Puedo confirmar esto resuelto el problema para mí.

Añadir android:largeHeap:"true" a su archivo de manifiesto y mover sus imágenes dibujables en la carpeta mipmap-hopi .

[Android] [java] [android-estudio]

  • La mayoría de la forma eficiente de memoria para cambiar el tamaño de mapas de bits en Android?
  • Android: Demasiada memoria asignada mientras usa png en lugar de imágenes vectoriales
  • Java.lang.OutOfMemoryError durante android 2.1 build en Mac OS X 10.6.8
  • Android Uso de la memoria de las aplicaciones
  • Androide MapView siempre provoca un OutOfMemoryError en elementos anidados
  • Implementación de BackStack para Fragmentos en las pestañas de Android
  • pérdida de memoria debido a llamada bitmapfactory
  • Android: Error de OutOfMemory y el backstack
  • Cómo definir el fondo dibujable mediante programación en Android
  • Aplicación de Android de problemas de memoria - probado todo y aún en una pérdida
  • Fuera de error de memoria viewpager + imageView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.