안드로이드(Android) 파일 브라우저에서 이미지 보여주기 |
개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2 |
이번 예제는 파일 브라우저와 이미지뷰를 연계한 샘플입니다. 파일브라우저에서 이미지를 선택하게 되면 다른 activity 로 path 를 넘겨 이미지를 보여주게 되는 것이죠. 파일 브라우저에서 이미지 클릭시 다른 activity 로 넘기는 부분과 이미지 경로를 받아서 ImageView 에 보여주는 activity 가 추가 되었습니다. |
다른 전체 소스는 파일브라우저에 있으므로 참고하시고
추가되는 부분에 대해서만 언급하겠습니다.
먼저 파일 브라우저에서 폴더나 파일클릭시 일어나는
이벤트 onListItemClick() 함수에 새로 만든 activity 로
이미지 경로를 넘기는 소스 입니다.
Intent 를 구성해 startActivityForResult() 로 넘깁니다.
넘길 때 File 객체에서 파일이 포함된 전체 경로를
putString() 함수에 넣습니다.
String filename = file.getName(); String ext = filename.substring(filename.lastIndexOf('.') + 1, filename.length()); if (ext.equals("JPG") || ext.equals("jpg")) { Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("totalpath", file.getPath()); intent.putExtras(bundle); intent.setClass(SampleActivity27.this, SelectImageView.class); startActivityForResult(intent, 0); }
메인 activity 에서 넘긴 데이터를 받은 SelectImageView
클래스에는 이미지를 표현하는 기능이 있겠죠.
Intent 로 보낸데이터를 받는 부분인데 getStringExtra() 를
이용해 값을 꺼냅니다.
String path = intent.getStringExtra("totalpath"); txtImgName.setText(path);
이미지를 ImageView 에 표현하기 위해 Bitmap 객체로
디코딩하고 ImageView 의 setImageBitmap() 함수에
인수로 넘겨 화면에 표현합니다.
BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; Bitmap bm = BitmapFactory.decodeFile(path, options); jpgView.setImageBitmap(bm);
서브 클래스인 SelectImageView.java 의 전체 소스입니다.
import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class SelectImageView extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_select_image_view); TextView txtImgName = (TextView)findViewById(R.id.jpgname); ImageView jpgView = (ImageView)findViewById(R.id.jpgview); //jpgView.setOnClickListener(clickListener); Intent intent = getIntent(); if(intent!=null){ String path = intent.getStringExtra("totalpath"); txtImgName.setText(path); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; Bitmap bm = BitmapFactory.decodeFile(path, options); jpgView.setImageBitmap(bm); } } }
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) 이미지에서의 Exif GPS 정보를 GeoPoint 바꾸기 (6) | 2014.11.17 |
---|---|
안드로이드(Android) 문의 – Dialog 클래스를 이용하여 다이얼로그 계산기 올리기 (0) | 2014.11.16 |
안드로이드(Android) 이미지뷰에서 Exif 정보 다이얼로그 띄우기 (1) | 2014.11.15 |
안드로이드(Android) showDialog(int) deprecated 다시 구현하기 (0) | 2014.11.14 |
안드로이드(Android) 파일브라우저에서 이미지 클릭시 Exif 정보 출력하기 (0) | 2014.11.12 |
안드로이드(Android) 간단한 파일 브라우저 만들기 (0) | 2014.11.11 |
안드로이드(Android) 지니모션(GenyMotion) 에뮬레이터 파일 옮기기 (0) | 2014.11.10 |
안드로이드(Android) 사진의 EXIF 정보 가져오기 (1) | 2014.11.09 |