안드로이드 개발 질문/답변
(글 수 45,052)
sdcard/DCIM/Camera 폴더에 있는 이미지만 불러오게 하고 싶은데
Cursor c = getContentResolver().query(Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/DCIM/Camera")),
null,null,null,null);
이렇게 하니까 null값으로 떨어져서 어떻게 해야하는지 막막하네요
아시는분 조언좀 해주세요
Cursor c = getContentResolver().query(Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/DCIM/Camera")),
null,null,null,null);
이렇게 하니까 null값으로 떨어져서 어떻게 해야하는지 막막하네요
아시는분 조언좀 해주세요
2010.04.29 14:05:38
반듯이 mediastore 를 통해서 가져와야 하나요? 전 직접호출하였는데 ..ㅎㅎ
당시 사용한 소스..
public ImageView getImage(int position){
ImageView imageView = new ImageView(this);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
try{
Bitmap bm = BitmapFactory.decodeFile(mThumbIds[position]); //mThumbIds[position] : 파일경로
Bitmap resized = Bitmap.createScaledBitmap(bm, 85, 85, true); //Size 조정
imageView.setImageBitmap(resized); //ImageView로 형변환
}catch(Exception e){
Log.i(tag , "Error : " + e.getMessage());
}
return imageView;
}
2010.04.30 00:46:13
아즈라엘님이 하신 소스는 mThumblds[position] 은 패키지내에 있는 이미지들을 리소스 패키지에서 가져와 인트 배열에 담아서 사용하는 방법인거 같고 한트님이 말한건 단말기 내부에 sdcard 직접 접근해서 가져오는 걸 말하는 거 같습니다.
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cur cursor = getContentResolver()
.query(
uri,
new String[] { android.provider.MediaStore.Images.ImageColumns.DATA },
null, null, null);
이렇게 하시면 sdcard/DCIM/Camera에 있는 이미지를 가져올 수 있을 겁니다.
실제 저렇게 할때 해당 폴더에는 이미지 외에 비디오 이미지들이 있을 수 있는데 그걸 분류하기 위해서 cursor로 가져오는 값들에 대해 .jpg 를 분류해 놓는게 실제 단말 사용을 할 때 코드가 필요할 겁니다.
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cur cursor = getContentResolver()
.query(
uri,
new String[] { android.provider.MediaStore.Images.ImageColumns.DATA },
null, null, null);
이렇게 하시면 sdcard/DCIM/Camera에 있는 이미지를 가져올 수 있을 겁니다.
실제 저렇게 할때 해당 폴더에는 이미지 외에 비디오 이미지들이 있을 수 있는데 그걸 분류하기 위해서 cursor로 가져오는 값들에 대해 .jpg 를 분류해 놓는게 실제 단말 사용을 할 때 코드가 필요할 겁니다.
2010.04.30 07:55:44
알려주신 정보감사합니다.
저는 이렇게 해서 sdcard/DCIM/Camera에 있는 이미지만 가져오는데 성공했습니다.
Cursor c = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,"bucket_display_name='Camera'",null,null);
제가 한 방법말고도 많은 방법들이 있네요 알려주신 방법으로도 해봐야겠어요 ^^
다시한번 좋은정보 감사드립니다.