2013-04-06 3 views
4

안녕하세요. 기기에서 이미지를로드하는 데는 Universal Image Loader을 사용합니다. 이제는 작동하지만 파일 경로에 "공백 문자"가 포함되어 있으면 이미지가 표시되지 않고 로그 레코드에 FileNotFoundException.외부 저장 장치 파일 용 유니버설 이미지 로더

자바 io를 사용하여 스레드에서 파일을 열려고 시도하고 열면 읽을 수 있습니다.

파일 이름 :

/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20121014-WA0001.jp 

예외는
그것이 %20로 공간을 대체 던져 때이 던진 예외를 만드는 것.

내 코드 :

ImageLoader.getInstance().displayImage(
        Uri.fromFile(
          new File(cursor.getString(cursor.getColumnIndex(

          MediaStore.Images.Media.DATA)))).toString(), 
        holder.mImage); 

경로에 공백,

+0

공간 기호를'% 20' (으)로 대체하려고 했습니까? –

+0

내 편집 참조하십시오 – user4o01

+0

이 토론 확인 : http://stackoverflow.com/questions/6478295/white-space-allowed-as-part-of-file-path –

답변

5

어떤 도움이 저도 같은 문제가 없었다 나는이 솔루션을 발견하는 경우에만 작동합니다.

String uri = fileName.getUri().toString(); 
String decodedUri = Uri.decode(uri); 

ImageLoader.getInstance().displayImage(decodedUri, imageView); 
+2

fileName은 무엇입니까? –

+0

fileName은 File 객체입니다. – Jason

+0

시간을 많이 절약 해주었습니다 :) 감사합니다! 파일 이름에 ASCII 기호가 아닌 경우에도 유용합니다. –

10

다른 대답은 불행히도하지 fileName 내가 사용하여 ImageLoader과 지역 이미지를 사용하여 관리하므로 몇 가지 추가 굴착 후 무엇 너무 명확 :

샘플 코드 :

string imgPath = "/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20121014-WA0001.jpg"; 

String decodedImgUri = Uri.fromFile(new File(imgPath)).toString(); 
ImageLoader.getInstance().displayImage(decodedImgUri, imageView); 

Android loading local image with space in path and with universal image loader도 문제를 해결하는 데 도움이됩니다.