마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

webview assets 폴더 안에 html 에서 image 가 엑박

0 추천

인터넷이 연결되지 않았을때 webview 에서 에러 html 을 보여주고 싶습니다.

그냥 "인터넷 연결을 확인하세요" 와 같은 단순 text 가 포함된 html 은 잘 보여지는데 assets 밑에 있는 image 는 

엑박으로 나오네요 .ㅠㅠ

 

webview.setWebViewClient(new testWebViewClient());

webview.getSettings().setJavaScriptEnabled(true);

webview.addJavaScriptInterface(new JavaScriptInterface(this), "js_interface");

 

public class testWebViewClient extends WebViewClient {

@Override

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

StringBuilder html = new StringBuilder();
html.append("<html>")
.append("<head>")
.append("</head>")
.append("<body>")
.append("<p><img style='width: 100%;' src='error.png' alt='Please check your internet connection or try again later ' />")
.append("</p>")
.append("</body>")
.append("</html>");
webview.loadDataWithBaseURL("file:///android_asset/", html.toString(), "text/html", "UTF-8", ""); 
}

}

 

이미지가 엑박으로 나오네요...error.png 는 assets 폴더 바로 밑에 있습니다.

 

assets/error.html 을 만들고

<html><p><img src="error.png"></p></html>

webview.loadUrl("file:///error.html");

로 해봐도 마찬가지...
 

assets/error.html 을 만들고

<html><p><img src="file:///android_asset/error.png"></p></html>

webview.loadUrl("file:///error.html");

로 해봐도 마찬가지...

 

다 엑박이네요... 도와주세요

 

liveform (340 포인트) 님이 2014년 7월 15일 질문

1개의 답변

0 추천
저도 assets폴더에서 webview load를 하려고 할 때 굉장히 애를 많이 먹었는데요.

 

저는 html 소스를 /res/raw 에 넣고, InputStream으로 불러와 html코드를 따로 String으로 받고,

webview.loadData(html)이런식으로 하니까 되더라구요.
BigStarK (540 포인트) 님이 2014년 7월 19일 답변
...