=================================
=================================
=================================
출처: http://androcode.tistory.com/20
HTML 파일을 APK 로컬영역에 두고 로딩을 하려 할 때, Assets 폴더에 넣고, webview.loadUrl()을 하는 것이 일반적입니다.
그러나 이렇게 로딩을 하면 HTML 파일내에 있는 상대경로나 파일들을 다음과 같이 모두 변경해줘야 합니다.
WebView view = new WebView(this); view.getSettings().setJavaScriptEnabled(true); view.loadUrl("file:///android_asset/hello.html"); setContentView(view);
더 큰 문제점은 이 경우 HTML 내부에서 참조하는 이미지 파일 및 CSS파일들의 경우도 모두 "file:///android_asset/"으로 시작하는 절대경로로 맞춰야 합니다.
다음과 같이 HTML 파일과 CSS, IMG 파일들을 폴더형태 그대로 넣고 사용할 수 있습니다.
우선 index.html 파일을 String으로 읽어들입니다.
이렇게 읽어들인 데이터를 myWebView.loadDataWithBaseURL( )로 로딩하면 됩니다.
/** * Gets html content from the assets folder. */ private String getHtmlFromAsset() { InputStream is; StringBuilder builder = new StringBuilder(); String htmlString = null; try { is = getActivity().getAssets().open("index.html"); if (is != null) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line; while ((line = reader.readLine()) != null) { builder.append(line); } htmlString = builder.toString(); } } catch (IOException e) { e.printStackTrace(); } return htmlString; } /** * Loads html page with the content. */ private void loadHtmlPage() { String htmlString = getHtmlFromAsset(); if (htmlString != null) myWebView.loadDataWithBaseURL("file:///android_asset/", htmlString, "text/html", "UTF-8", null); else Toast.makeText(getActivity(), "html이 없습니다", Toast.LENGTH_LONG).show(); }
출처: http://androcode.tistory.com/20 [ANDRO::CODE]
=================================
=================================
=================================
'스마트기기개발관련 > 안드로이드 개발' 카테고리의 다른 글
[android] 안드로이드 N, 안드로이드 7 이상 화면 사이즈 변경에 따른 대응 방법 관련 (0) | 2018.04.03 |
---|---|
[android] 안드로이드 WebView로 HTML5 하이브리드 앱 설정 개발 관련 (0) | 2018.03.31 |
[android] 안드로이드 웹뷰로드, 로컬웹 로드 관련 (0) | 2018.03.30 |
[android] TextView 글자 크기 dp설정을 java코드로 설정하기 관련 (0) | 2018.03.14 |
[android] 안드로이드 폰트사이즈, 폰트사이즈 고정하기 관련 (0) | 2018.03.14 |
댓글 영역