2016-09-05 4 views
0

이미지의 실제 경로가 포함 된 URI 개체가 있습니다. 나는 우리가 선택 문자열을 쿼리를 사용해야하지만 SQL에서 나쁘다는 것을 알고있다.주어진 경로의 커서 가져 오기

커서를 어떻게 표시 할 수 있습니까?

이것은 내 DTO를위한 나의 투영 문자열입니다.

String[] projection = { 
      MediaStore.Images.ImageColumns._ID, 
      MediaStore.Images.ImageColumns.DISPLAY_NAME, 
      MediaStore.Images.ImageColumns.DATA, 
      MediaStore.Images.ImageColumns.WIDTH, 
      MediaStore.Images.ImageColumns.HEIGHT, 
      MediaStore.Images.ImageColumns.MIME_TYPE}; 

그리고 자르기 라이브러리에서 Uri가 반환됩니다.

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) { 
     final Uri resultUri = UCrop.getOutput(data); 
    } else if (resultCode == UCrop.RESULT_ERROR) { 
     final Throwable cropError = UCrop.getError(data); 
    } 
} 

도움 주셔서 감사합니다.

+0

"이미지의 실제 경로가 포함 된 URI 개체가 있습니다."- 그럴 가능성이 거의 없습니다. [Uri를 적절히 사용하십시오.] (https://commonsware.com/blog/2016/03/15/how-consume-content-uri.html). 예를 들어, 대부분의 [이미지 로딩 라이브러리] (http://android-arsenal.com/tag/46)는'Uri'에서'ImageView'를 어떻게 채울 것인지를 알고 있습니다. 또는 ContentResolver와 OpenInputStream()을 사용하여 내용에 대한 InputStream을 얻은 다음, 백그라운드 스레드의 BitmapFactory.decodeStream()에 해당 InputStream을 전달하십시오. – CommonsWare

+0

저는 Uri를 반환하는 자르기 라이브러리를 사용하고 있습니다. 편집 된 질문에서 확인할 수 있습니다. 거기에 아무 문제가 없습니다. 어쨌든 고마워. 건배. –

+0

도서관의 저자에게 반환 된 '우리 (Uri)'의 규칙이 무엇인지 물어볼 필요가있다. – CommonsWare

답변

2

일반적으로 Uri은 파일 시스템에 파일을 나타내지 않아도 사용자가 확인할 수있는 경로는 물론 사용자가 액세스 할 수있는 파일 일뿐만 아니라 확인할 수도 있습니다.

Uri의 스키마가 file 인 경우 getPath()은 파일 시스템 경로를 파일에 반환합니다. 그러나 파일 시스템을 통해 해당 파일에 대한 읽기 또는 쓰기 액세스 권한이 없을 수 있습니다 (이 경우 Uri을 작성한 사람의 코딩 오류가 있음을 나타냄). 내용이 일반 파일이 될 요구 사항이 없기 때문에 Uricontent 방식을 가진 사람되는 가장 일반적인 다른 종류의 경우

는 —, 파일 시스템 경로를 확인할 방법이 없습니다. 암호화 된 파일, 데이터베이스의 BLOB 열에 저장된 콘텐츠, 네트워크에서 다운로드 할 콘텐츠 또는 수많은 다른 패턴 일 수 있습니다.