- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] WebView 높이 wrap_content 주는 방법 본문
- 웹에서 이미지를 가져올때는 때 웹뷰를 사용해서 가져오는 방법과 비동기 다운로더를 사용하는 방법이 있습니다.
- 웹 이미지 크기는 다양하기 때문에 가로/세로 비율에 맞게 이미지를 정확하게 나오게 하려면 가로/세로를 wrap_content 로 주고 받아와야 됩니다
- ImageView 높이를 wrap_content 로 주고 이미지를 비동기 다운로더를 사용해서 가져와봤지만 이미지가 클 경우에 Bitmap too large to be uploaded into a texture 라고 경고가 나옵니다.
- 그래서 WebView 를 사용해서 웹이미지를 가져와 보았는데 이미지 높이를 wrap_content 로 주면 이미지가 나오지 않습니다.
- 이미지 크기에 맞게 웹뷰사이즈를 지정하는 예제입니다
// 웹 이미지 높이 가져오기
int detailImageHeight=0;
int detailImageWidth=0;
String imgUrl="http://www.naxxxx.xxxx";
private void getImgHeight(String imgUrl){
try {
URL url = new URL(imgUrl);
URLConnection conn = url.openConnection();
conn.connect();
BufferedInputStream bis = new
BufferedInputStream(conn.getInputStream());
Bitmap bm = BitmapFactory.decodeStream(bis);
detailImageHeight= bm.getHeight();
detailImageWidth= bm.getWidth(); //이미지 사이즈 가져온다.
bis.close();
} catch (IOException e) {
}
}
// 웹뷰에 이미지 로드하기
private void loadWebView() {
WebView thumbnail = (WebView)findViewById(R.id.webview);
android.view.ViewGroup.LayoutParams lp = thumbnail.getLayoutParams();
lp.width = detailImageWidth;
lp.height = detailImageHeight;
thumbnail.setLayoutParams(lp);
thumbnail.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
thumbnail.getSettings().setJavaScriptEnabled(true);
thumbnail.setVerticalScrollBarEnabled(false);
thumbnail.loadDataWithBaseURL(null,creHtmlBody(imgUrl), "text/html", "utf-8",null);
}
public String creHtmlBody(String imagUrl) {
StringBuffer sb = new StringBuffer("<HTML>");
sb.append("<HEAD>");
sb.append("</HEAD>");
sb.append("<BODY style='margin: 0; padding: 0'>");
sb.append("<img width=\"100%\" height=\"100%\" src=\"" + imagUrl+ "\">");
sb.append("</BODY>");
sb.append("</HTML>");
return sb.toString();
}
//
더 좋은 방법이 있으면 댓글 부탁드립니다^^;
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] TextView 문자단위로 개행하기 (0) | 2013.11.19 |
---|---|
[안드로이드] Context 추상 클래스 (0) | 2013.08.16 |
[안드로이드] Listview 의 overScrollEffect 설정,제거하기 (0) | 2013.08.16 |
[안드로이드] Battery 상태 감시하는 방법 (0) | 2013.06.25 |
[안드로이드] 안드로이드 앱 초보 개발자가 범하는 10가지 실수는? (0) | 2013.06.25 |