【发布时间】:2015-07-05 14:46:30
【问题描述】:
目前,我使用 [Universal Image Loader] 库从 sd 卡加载一些文件。
我想从文件路径中获取以下 URI:
file:///mnt/sdcard/image.png
我已经尝试过这种方式来获取文件 URI:
Uri uri = Uri.fromFile(mAlFileList.get(i));
但是file URI 已经修改为
file:///mnt/sdcard/%5B40k%5D/20141014_232337.jpg
当我在文件夹名称中使用特殊字符时,是:[40k] - 这是%5B40k%5D 的名称。
我想要的是得到这个文件 URI:file:///mnt/sdcard/[40k]/20141014_232337.jpg
但是我不知道如何得到正确的东西。
请帮帮我。
PS:
- 也适用于文件夹名称中还包含空格字符的情况,如:
My Folder(改成%20,但不是我想要的) - 实际上,如果我不使用任何特殊字符,库可以正确加载文件。
从库中接受的 URI:
"http :// site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
"content://media/external/images/media/13" // from content provider
"content://media/external/video/media/13" // from content provider (video thumbnail)
"assets://image.png" // from assets
"drawable://" + R.drawable.img // from drawables (non-9patch images)
-
代码加载媒体文件:
imageLoader.displayImage( Uri.fromFile(new java.io.File(FILE_PATH)).toString() , markableImageView, mDio, new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if (loadedImage != null & view != null) { ((ImageView) view).setImageBitmap(Bitmap.createScaledBitmap( loadedImage, mContext.getResources().getInteger(R.integer.width_file_view), mContext.getResources().getInteger(R.integer.height_file_view), false)); } } }, new ImageLoadingProgressListener() { @Override public void onProgressUpdate( String imageUri, View view, int current, int total) { } });
【问题讨论】:
-
签出this。
-
@Exception : 如果使用
special character in folder name,这种方式将不起作用。
标签: android image video universal-image-loader