반응형
안드로이드(Android) 저장소(Sdcard) 에서 읽어온 파일이 이미지인지 판단하기 |
개발환경 : window 7 64bit, Eclipse Kepler, Android 4.2.2 |
안드로이드에서 이미지를 표현하기 위해 SDCARD 에서 파일을 읽어옵니다. 그런데 여기에 이미지만 있는 것이 아닙니다. 이미지가 아닌 파일을 ImageView에 표현을 하게 되면 에러가 나므로 미연에 방지를 해야합니다. |
이전 갤러리 만드는 샘플에서 SDCARD 에
이미지를 불러오는 함수를 수정합니다.
이전 이미지 불러오는 함수는 다음과 같습니다.
// SDCARD 에 이미지를 가져옵니다. private void ReadSDCard() { List<String> tFileList = new ArrayList<String>(); File f = new File( Environment.getExternalStorageDirectory().getPath() + "/Pictures/"); File[] files = f.listFiles(); for (int i = 0; i < files.length; i++) { File file = files[i]; tFileList.add(file.getPath()); } imgListPath = tFileList; }
여기에 이미지가 아닌 파일을 제외하기 위해
코드를 추가합니다. 먼저 String curFile = file.getPath();
로 전체 파일이름을 포함한 주소를 읽는다
그리고 파일명의 확장자를 잘라내서 소문자로 바꿉니다.
String curFile = file.getPath(); String ext = curFile.substring( curFile.lastIndexOf(".") + 1, curFile.length()).toLowerCase(Locale.KOREA);
이렇게 소문자로 바꾼후 jpg, gif, png 만 이미지리스트에
추가합니다.
// SDCARD 에 이미지를 가져옵니다. private void ReadSDCard() { List<String> tFileList = new ArrayList<String>(); File f = new File(Environment.getExternalStorageDirectory() .getPath() + "/Pictures/"); File[] files = f.listFiles(); for (int i = 0; i < files.length; i++) { File file = files[i]; String curFile = file.getPath(); String ext = curFile.substring( curFile.lastIndexOf(".") + 1, curFile.length()).toLowerCase(Locale.KOREA); if (ext.equals("jpg") || ext.equals("gif") || ext.equals("png")){ tFileList.add(file.getPath()); } } imgListPath = tFileList; }
반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) 스마트 폰에 모든 시스템 정보 알아보기 (1) | 2014.10.25 |
---|---|
안드로이드(Android) CPU 버전 알아오기 (0) | 2014.10.24 |
안드로이드(Android) 2014년 9월 까지 플랫폼 버전과 화면해상도 분포 (0) | 2014.10.24 |
안드로이드(Android) OS 버전과 시스템정보 알아오기 (0) | 2014.10.23 |
안드로이드(Android) google map API v2 에서 지도에 마커설정하기 (1) | 2014.10.22 |
안드로이드(Android) HorizontalScrollView 이용해 이미지 갤러리 만들기 – 2부 (0) | 2014.10.22 |
안드로이드(Android) HorizontalScrollView 이용해 이미지 갤러리 만들기 – 1부 (0) | 2014.10.22 |
안드로이드(Android) XML 을 사용하여 이미지 버튼 배경 로딩하기 (0) | 2014.10.13 |