반응형
안녕하세요 돼지왕 왕돼지입니다.
오늘은 Internet 에서 image 를 읽어오는 방법 ( download, load )과 Cache 를 하는 방법을 코드를 통해 알아보겠습니다.
<ImageView에 바로 연결하기>
ImageView img = (ImageView)findViewbyId(R.id.result);
// 그림 용량이 클 경우 decodeStream이 오랜 시간을 소모할 수 있다.
String imageurl = "http://developer.android.com/images/opengl/coordinates.png";
try{
InputStream is = new URL( imageurl ).openStream();
Bitmap bit = BitmapFactory.decodeStream( is );
img.setImageBitmap( bit );
is.close();
}
catch(Exception e) { ; }
<Cache 하며 ImageView에 설정하기>
// 저장하고 Cache '처럼' 작동시키는 방법
String imageurl = "http://www.winapi.co.kr/data/child3.jpg";
int idx = imageurl.lastIndexOf('/');
String localimage = imageurl.substring(idx + 1);
String path = Environment.getDataDirectory().getAbsolutePath();
path += "/data/exam.Network/files/" + localimage;
if (new File(path).exists() == false){
DownloadImage(imageurl, localimage);
}
Bitmap bitmap = BitmapFactory.decodeFile(path);
img.setImageBitmap(bitmap);
boolean DownloadImage(String Url, String FileName){
URL imageurl;
int Read;
try{
imageurl = new URL(Url);
HttpURLConnection conn = (HttpURLConnection)imageurl.openConnection();
int len = conn.getContentLength();
byte[] raster = new byte[len];
InputStream is = conn.getInputStream();
FileOutputStream fos = openFileOutput(FileName, 0);
for (;;){
Read = is.read(raster);
if (Read <= 0){
break;
}
fos.write(raster, 0, Read);
}
is.close();
fos.close();
conn.disconnect();
}
catch(Exception e){
return false;
}
return true;
}
로그인 없이 추천 가능합니다. 손가락 꾸욱~
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] Network & Internet 에 대해 알아봅시다. (0) | 2012.02.18 |
---|---|
[Android/안드로이드] Async Download. (0) | 2012.02.18 |
[Android/안드로이드] DOM Parser ( 돔 파서 ) (0) | 2012.02.18 |
[Android/안드로이드] SAX Parser ( 삭스 파서 ) (6) | 2012.02.18 |
[Android/안드로이드] XmlPullParser 에 대해 알아봅시다. (2) | 2012.02.18 |
댓글