Foros del Web » Programando para Internet » Android »

Mejor forma de cargar imagen de la memoria en ImageView

Estas en el tema de Mejor forma de cargar imagen de la memoria en ImageView en el foro de Android en Foros del Web. Buenas de nuevo, Tengo echa una aplicación la cual hace una foto la guarda en el dispositivo y luego la carga en una list view. ...
  #1 (permalink)  
Antiguo 03/12/2014, 14:54
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 11 años, 5 meses
Puntos: 0
Mejor forma de cargar imagen de la memoria en ImageView

Buenas de nuevo,

Tengo echa una aplicación la cual hace una foto la guarda en el dispositivo y luego la carga en una list view.

El "problema que tengo" es que las imágenes son muy grandes y no se escalan, he encontrado un código para hacerlas mas pequeñas pero esto me resentiza muchísimo el dispositivo.

Hay alguna manera hacer esta visualización, es decir mostrar la imagen en un tamaño menor?

Os adjunto el codigo.

Para hacer y guardar la foto.

Código Java:
Ver original
  1. void hacerFoto(){
  2.         Intent cameraIntent = new Intent(
  3.              
  4.                 android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
  5.              //Creamos una carpeta en la memeria del terminal
  6.              File imagesFolder = new File(
  7.              Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DCIM), "TFG");
  8.              imagesFolder.mkdirs();  
  9.          
  10.              //añadimos el nombre de la imagen
  11.              Calendar c = Calendar.getInstance();
  12.             SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
  13.              String formattedDate = df.format(c.getTime());
  14.              // formattedDate have current date/time
  15.          
  16.              File image = new File(imagesFolder, formattedDate+".jpg");
  17.              final Uri uriSavedImage = Uri.fromFile(image);
  18.          
  19.              //Le decimos al Intent que queremos grabar la imagen
  20.              cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
  21.              //Lanzamos la aplicacion de la camara con retorno (forResult)
  22.              startActivityForResult(cameraIntent, 1);
  23.            
  24.     }


Luego en una classe que extiende de arrayAdapter en el constructor de la classe llamo a:
f = getFromSdcard();

Que carga las imágenes:

Código Java:
Ver original
  1. public ArrayList<String> getFromSdcard()
  2.         {
  3.            
  4.        ArrayList<String> f = new ArrayList<String>();// list of file paths
  5.             File[] listFile = null;
  6.  
  7.             File file= new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "TFG");
  8.          
  9.                 if (file.isDirectory())
  10.                 {
  11.                     listFile = file.listFiles();
  12.                     for (int i = 0; i < listFile.length; i++)
  13.                     {
  14.  
  15.                         f.add(listFile[i].getAbsolutePath());
  16.                  
  17.                     }
  18.                 }
  19.             return f;
  20.         }

Y en el metodo public View getView(int position, View convertView, ViewGroup parent)
voy cargando las imágenes que me devuelve el método getFromSdcard()

Código Java:
Ver original
  1. LayoutInflater inflater = (LayoutInflater) context
  2.                     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  3.            
  4.             // 2. Get rowView from inflater
  5.             View rowView = inflater.inflate(R.layout.listitem_titular, parent, false);;
  6.            
  7.        
  8.             ImageView imgGaleria = (ImageView)rowView.findViewById(R.id.ImgGaleryElement);
  9.            
  10.             // 4. Set the text for textView
  11.             lblTitulo.setText(datos[position].getTitulo());
  12.             lblSubtitulo.setText(datos[position].getSubtitulo());
  13.      
  14.            
  15.        
  16.             Bitmap bmImg = BitmapFactory.decodeFile(f.get(position).toString());

Alguna recomendación para optimizar esto?

Etiquetas: androi, aplicacion, forma, list, memoria, view
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:57.