프로그램/Android

안드로이드 Url을 이용하여 Bitmap 다운로드

잡식성초보 2017. 11. 9. 15:11

안드로이드 개발을 하다보면 가끔씩 Url 이용하여 Bitmap ImageView 넣어줘야 할일이 많습니다.


또는 API 통신을 하여 받은 ImageUrl 가지고 있다가 다른곳에서 ImageView 넣어줘야 할때도 있습니다.


그럴때 저는 ImageUrl 이용하여 이미지를 Bitmap으로 다운받은 String형태로 전환하여 가지고 있다가


다른페이지에서 다시 String 형태를 Bitmap으로 전환하여 사용합니다. 사용하는 위치에 가서 통신을 이용하여 Bitmap


가져오기엔 타이밍이 않맞거나 다른일이 생길까봐 보통 그렇게 합니다.



HttpURLConnection conn = null; try { URL url = new URL(imageUrl); conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setConnectTimeout(8000); conn.connect(); InputStream is = conn.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(is); if(bitmap == null) return null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG,100, bos); byte [] b = bos.toByteArray(); String strBit = Base64.encodeToString(b, Base64.DEFAULT); return strBit; } catch (IOException e) { e.printStackTrace(); return null; }finally{ if(conn!=null)conn.disconnect(); }



String 형태의 Bitmap Image 다시 Bit맵으로 변환하는 방법입니다. 



try{
    byte [] encodeByte = Base64.decode(encodedString,Base64.DEFAULT);
    Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
    return bitmap;
}catch(Exception e){
    e.getMessage();
    return null;
}


반응형