Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2011, 01:15
Motki
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 23 años
Puntos: 0
OutofMemory BitmapFactory.decodeFile

Estoy haciendo una aplicación para mostrar una galeria de imagenes en pantalla.
El problema es que dependiendo de que directorio cargue la aplicación cuando crea el bitmap que luego utilizo me dá error : OutofMemory...
He puesto de todo para que libere la memoria pero aun así me dá el error...
Alguien puede ayudarme ?


Código PHP:
public class CatalogoActivity extends Activity {
    
/** Called when the activity is first created. */
    
@Override       
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.main);
 
        
String icon1;
        
int resID1;
 
 
        
Bitmap levelBitmap = null;
 
 
       
//////////////////////////////////////////////////////////////////////////////////////////////
        
String ruta;
        
String state = Environment.getExternalStorageState();
        
File file = new File(Environment.getExternalStorageDirectory(),"EMPRESAS/IMAGENES/test/");
        
File[] files = file.listFiles();  
        
int itmp;
        
itmp=0;
        final 
String[] nombreImgArray = new String[files.length]; 
        
Bitmap[] mBitArray = new Bitmap[files.length]; 
 
        
///// ordenar files /////////
        
Arrays.sort(files);
 
 
 
        for(
int i=0; i < files.length; i++)  {
            
File fileTmp = files[i];
 
            if(
fileTmp.isDirectory()!= true){
                
ruta = fileTmp.getPath();
 
 
                
BitmapFactory.Options options=new BitmapFactory.Options(); 
                
options.inDensity =1;
                
options.inJustDecodeBounds = true;
                
options.inSampleSize = 3; 
                
byte[] byteArrayForBitmap = new byte[1024*1024];//new byte[48*1024];
                
options.inTempStorage = byteArrayForBitmap;
                
options.inJustDecodeBounds = false;
 
 
                
levelBitmap = BitmapFactory.decodeFile(ruta,options);
 
                
mBitArray[itmp] = levelBitmap;
                
nombreImgArray[itmp] = fileTmp.getName();
                
itmp = itmp +1;                 
 
 
            }
 
        }
        } 
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI