반응형
AsyncTask를 이용하여 이미지 파일 다운로드 하기...
좀더 추가해 줘야할것은 같은 이름의 파일이 있을때의 처리...
나같은경우는 원래 파일명을 시간날짜이런걸 뒤에 붙여 만들었으므로
그럴 경우가 없기애...
private class ImageDownload extends AsyncTask<String, Integer, String> { //이미지 다운로드 private String fileName; String savePath = Environment.getExternalStorageDirectory() + File.separator + "temp/"; @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { File dir = new File(savePath); //상위 디렉토리가 존재하지 않을 경우 생성 if (!dir.exists()) { dir.mkdirs(); } String fileUrl = params[0]; String localPath = savePath + "/" + fileName + ".jpg"; try { URL imgUrl = new URL(fileUrl); //서버와 접속하는 클라이언트 객체 생성 HttpURLConnection conn = (HttpURLConnection) imgUrl.openConnection(); int response = conn.getResponseCode(); File file = new File(localPath); InputStream is = conn.getInputStream(); OutputStream outStream = new FileOutputStream(file); byte[] buf = new byte[1024]; int len = 0; while ((len = is.read(buf)) > 0) { outStream.write(buf, 0, len); } outStream.close(); is.close(); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String obj) { //저장한 이미지 열기 Intent i = new Intent(Intent.ACTION_VIEW); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); String targetDir = Environment.getExternalStorageDirectory().toString(); File file = new File(targetDir + "/" + fileName + ".jpg"); //type 지정 (이미지) i.setDataAndType(Uri.fromFile(file), "image/*"); mContext.startActivity(i); super.onPostExecute(obj); } }
반응형
'프로그램 > Android' 카테고리의 다른 글
URL 로 이미지 받아서 모서리 둥근 ImageView 생성 (0) | 2016.09.26 |
---|---|
둥근 프로그래스바 Circle ProgressBar (0) | 2016.09.26 |
안드로이드 Download Manager (0) | 2016.09.07 |
java.lang.UnsatisfiedLinkError 와 안드로이드 라이브러리 추가 등등... (0) | 2016.06.22 |
Google Marker 안에 이미지 넣기 (0) | 2016.06.09 |