I am reading files from the selected folder on my phone like you can see in the following code. And how could I get this work with an Imagefile? At the end I like to have an imagelist with a preview of every image. Like that:
[IMG] (imgview) - [Filename] (String)
for(int i=0; i < files.length; i++) {
File file = files[i];
map = new HashMap<String, String>();
if(!file.isHidden() && file.canRead()) {
path.add(file.getPath());
if(file.isDirectory()) {
map.put("img_list", ""+R.drawable.folder);
map.put("string_cell", file.getName()+"/");
your_array_list.add(map);
}else{
ImageFileFilter filefilter = new ImageFileFilter(file);
if(filefilter.accept(file)){
//Its an imagefile
// ==> I like to replace the ""+R.drawable.image with the file that I have read
map.put("img_list", ""+R.drawable.image);
} else {
//Its not an image file
}
map.put("string_cell", file.getName());
your_array_list.add(map);
}
}
}
SimpleAdapter mSchedule = new SimpleAdapter(this, your_array_list, R.layout.connected_upload_row,
new String[] {"img_list", "string_cell"}, new int[] {R.id.img_list, R.id.string_cell});
list.setAdapter(mSchedule);
In the following picture I like to replace the white "image" picture with the original picture called "41786486733.jpg" as preview. So that the user can see what picture this is...
EDIT FLORIAN PILZ
if(filefilter.accept(file)){
Log.v("PATH1", file.getPath() );
ImageView myImageView = (ImageView) findViewById(R.id.img_list);
Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath());
myImageView.setImageBitmap(bmp);
}
Looking at the picture, and assuming that the white image with the text "IMAGE" is an ImageView instance, then simply...
Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath);
myImageView.setImageBitmap(bmp);
Or did I completely misunderstood your question. Anyhow this small example tries to do something similar, what your are trying to accomplish.
There is a similar question with an answer accepted. Check: Cannot open image file stored in sdcard
Snippet from there:
File directory = new File(extStorageDirectory, "myFolder");
File fileInDirectory = new File(directory, files[which]);
Bitmap bitmap = BitmapFactory.decodeFile(fileInDirectory.getAbsolutePath());
You have to implement custom listview check this example and seem storing path in hashmap creating issue,it will more helpful if you provide error log cat! anyhow can you try below trick to achieve you goal instead storing path in hashmap?,hope it will help to you.
File file = new File(Environment.getExternalStoragePath()+"/Folder/");
file imageList[] = file.listFiles();
for(int i=0;i<imageList.length;i++)
{
Log.e("Image: "+i+": path", imageList[i].getAbsolutePath());
Bitmap bitmap = BitmapFactory.decodeFile(imageList[i].getAbsolutePath());
myImageView.setImageBitmap(bitmap);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With