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; }
- Crear una pantalla de bienvenida animada con marcos en Android
- Mostrar imagen grande de la tarjeta SD en Android
- Descargando la imagen del almacenamiento de firebase usando picasso: excepción de memoria
- El uso de memoria no disminuye ni siquiera reciclo bitmaps
- Fuera de la cadena de memoria de Android
- Error de memoria de mapa de bits - Android
- Poner byte en JSON en android
- OutOfMemory al cargar imágenes de fondo grandes
- Android - BitmapFactory.decodeByteArray - OutOfMemoryError (OOM)
- Detectando OutOfMemoryError en la decodificación Bitmap
- Problemas de memoria en fragmentos que muestran imágenes
- OutOfMemory en el dispositivo y el emulador
- Cómo solucionar OutOfMemoryError con LayerDrawable
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]
- Quitar todos los fragmentos de ViewPager poblados por FragmentStatePagerAdapter
- Cómo agregar una imagen a un botón en android