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 originalvoid 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
String formattedDate
= df.
format(c.
getTime()); // formattedDate have current date/time
File image
= new File(imagesFolder, formattedDate
+".jpg"); 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 originalpublic ArrayList<String> getFromSdcard()
{
ArrayList<String> f = new ArrayList<String>();// list of file paths
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 originalLayoutInflater inflater = (LayoutInflater) context
.
getSystemService(Context.
LAYOUT_INFLATER_SERVICE);
// 2. Get rowView from inflater
View rowView
= inflater.
inflate(R.
layout.
listitem_titular, parent,
false);;
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?