在android上使用Fresco库显示SD卡上的图像

在android上使用Fresco库显示SD卡上的图像,android,sd-card,fresco,Android,Sd Card,Fresco,我可以使用Fresco图像库显示URL中的图像,如他们的网站所示- Uri u = Uri.parse("https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png"); SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view); draweeView.setImageURI(u); 如何使用Fresco显

我可以使用Fresco图像库显示URL中的图像,如他们的网站所示-

Uri u = Uri.parse("https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(u);
如何使用Fresco显示SD卡上的图像?

查看:


这里,从sd卡加载图像在第一个链接中进行了说明,如何将其与fresco连接在第二个链接中进行了说明。

获取设备上的文件

SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
Uri imageUri= Uri.fromFile(new File(imagePath));// For files on device
draweeView.setImageURI(imageUri);
获取网络上的文件

Uri imageUri = Uri.parse(imagePath);
ImageRequest request = ImageRequest.fromUri(imageUri);
DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setImageRequest(request)
                .setOldController(draweeView.getController()).build();
draweeView.setController(controller);

您只需要使用res://URI方案,后跟资源的ID,如下所示:

Uri localImageUri = Uri.parse("res:/" + R.drawable.your_sdcard_image);

simpleDraweeView.setImageURI(localImageUri);
这是像这样的

SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
drayeview.setImageURI(getImageContentUri(context.filepath))

但是,您可能会遇到此问题


如果您使用下面给出的壁画示例在
RecyclerView
中显示SD卡或图库中的图像

     Uri imageUri = Uri.parse("file://"+galleryList.get(position));

    ImageRequest request = ImageRequest.fromUri(imageUri);

    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setImageRequest(request)
            .setOldController(holder.simpleDraweeViewOne.getController()).build();
    Log.e(TAG, "ImagePath uri " + imageUri);

    holder.simpleDraweeViewOne.setController(controller);
注意
文件://
用于显示SD卡中的数据

     Uri imageUri = Uri.parse("file://"+galleryList.get(position));

    ImageRequest request = ImageRequest.fromUri(imageUri);

    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setImageRequest(request)
            .setOldController(holder.simpleDraweeViewOne.getController()).build();
    Log.e(TAG, "ImagePath uri " + imageUri);

    holder.simpleDraweeViewOne.setController(controller);