6

我正在从手机上的选定文件夹中读取文件,就像您在以下代码中看到的那样。我怎么能用 Imagefile 来完成这项工作?最后,我喜欢有一个图像列表,其中包含每个图像的预览。像那样:

[IMG] (imgview) - [文件名] (字符串)

        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);

在下面的图片中,我喜欢将白色的“图像”图片替换为名为“41786486733.jpg”的原始图片作为预览。这样用户就可以看到这是什么图片...

在此处输入图像描述

编辑弗洛里安皮尔兹

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); 



                }

在此处输入图像描述

4

4 回答 4

1

查看图片,并假设带有文本“IMAGE”的白色图像是一个 ImageView 实例,那么简单......

Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath);
myImageView.setImageBitmap(bmp); 

还是我完全误解了你的问题。无论如何,这个小例子试图做类似的事情,你想要完成的事情。

于 2012-12-12T15:53:32.250 回答
1

有一个类似的问题,并接受了答案。检查:无法打开存储在 sdcard 中的图像文件

从那里摘录:

File directory = new File(extStorageDirectory, "myFolder");
File fileInDirectory = new File(directory, files[which]);
Bitmap bitmap = BitmapFactory.decodeFile(fileInDirectory.getAbsolutePath());
于 2012-12-13T17:17:34.413 回答
1

您必须实现自定义列表视图检查此示例并似乎在哈希映射创建问题中存储路径,如果您提供错误日志猫会更有帮助!无论如何,您可以尝试以下技巧来实现您的目标,而不是将路径存储在 hashmap 中吗?,希望它对您有所帮助。

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);
于 2012-12-18T04:55:49.240 回答
0

我的问题的解决方案在这里:

如何从图像路径显示缩略图?

我必须创建一个自定义列表视图(在 ρяσѕρєя K 的帮助下)谢谢!

通过扩展 baseadapter 类而不是 SimpleAdapter 创建自定义适配器。因为我认为这很容易,或者您也可以创建更多自定义 UI 而不是使用 inbuild

于 2012-12-18T07:24:35.520 回答