안드로이드 개발을 하다보면 가끔씩 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; }
'프로그램 > Android' 카테고리의 다른 글
이미지사이즈 초과시 대처(Bitmap too large) (0) | 2018.01.11 |
---|---|
안드로이드 Fabric 설치 (0) | 2017.11.17 |
안드로이드 ViewPager[Tutorial Sample] (0) | 2017.10.18 |
안드로이드 SDK 번호와 버전 정리 (0) | 2017.09.28 |
안드로이드 Mixed Content The page at was loaded over HTTPS (0) | 2017.09.27 |