반응형
안드로이드 URI 가져오기
이미지를 직접 저장한 경우 파일 이름만 알고 있을 때 URI 가져오는 방법이다.
장점 : 아래 방법으로 가져올 경우, 쓰레드로 동작하는듯하여 빠르게 m_currImageURI 데이터를 이용하는 경우, 동기화 문제가 발생한다. 하지만, getMediaUriFromPath 함수는 함수 완료 시점에 정확하게 uri를 리턴하는 듯 하여 동기화 장점이 있다.
File f = new File(FileName);
MediaScannerConnection.scanFile(this, new String[]{f.toString()}, null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri contentUri) {
m_currImageURI = contentUri;
}
});
public static Uri getMediaUriFromPath(Context context, String filePath) { File imageFile = new File(filePath); Cursor cursor = context.getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Images.Media._ID }, MediaStore.Images.Media.DATA + "=? ", new String[] { filePath }, null); if (cursor != null && cursor.moveToFirst()) { int id = cursor.getInt(cursor .getColumnIndex(MediaStore.MediaColumns._ID)); Uri baseUri = Uri.parse("content://media/external/images/media"); return Uri.withAppendedPath(baseUri, "" + id); } else { if (imageFile.exists()) { ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.DATA, filePath); return context.getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); } else { return null; } } }
반응형
'Programming > Android' 카테고리의 다른 글
안드로이드 그리기 관련 함수 정리 (0) | 2013.10.29 |
---|---|
[안드로이드] 자르기 intent 호출 (0) | 2013.10.29 |
[안드로이드]파일명으로 URI 가져오기 (0) | 2013.06.18 |
안드로이드 파일명으로 Cursor 위치 가져오기 (0) | 2013.05.03 |
안드로이드 UI & Layout (0) | 2013.04.12 |