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
void hacerFoto(){ Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); //Creamos una carpeta en la memeria del terminal imagesFolder.mkdirs(); //añadimos el nombre de la imagen // formattedDate have current date/time final Uri uriSavedImage = Uri.fromFile(image); //Le decimos al Intent que queremos grabar la imagen cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); //Lanzamos la aplicacion de la camara con retorno (forResult) startActivityForResult(cameraIntent, 1); }
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
public ArrayList<String> getFromSdcard() { ArrayList<String> f = new ArrayList<String>();// list of file paths File file= new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "TFG"); if (file.isDirectory()) { listFile = file.listFiles(); for (int i = 0; i < listFile.length; i++) { f.add(listFile[i].getAbsolutePath()); } } return f; }
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
LayoutInflater inflater = (LayoutInflater) context // 2. Get rowView from inflater ImageView imgGaleria = (ImageView)rowView.findViewById(R.id.ImgGaleryElement); // 4. Set the text for textView lblTitulo.setText(datos[position].getTitulo()); lblSubtitulo.setText(datos[position].getSubtitulo()); Bitmap bmImg = BitmapFactory.decodeFile(f.get(position).toString());
Alguna recomendación para optimizar esto?