показывает изображение с SDCard с веб-просмотра не работает - PullRequest
4 голосов
/ 26 ноября 2011

Я скачал файл map750.png в корне sdcard, но когда я пытаюсь показать его в веб-просмотре с некоторым текстом, отображается только текст.Не могли бы вы помочь мне найти, что не так в коде?спасибо.

setContentView(R.layout.webview);
    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    String html = "<html><head></head><body><p>hello</p><img src=\"file://mnt/sdcard/map750.png\" alt=\"alternativo\" /></body></html>";
    mWebView.loadData(html, "text/html","utf-8");

Я редактирую пост, чтобы добавить решение, предложенное oneilse14, спасибо !!

setContentView(R.layout.webview);
    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    String html = "<html><head></head><body><p>hello</p><img src=\"file://mnt/sdcard/map750.png\" alt=\"alternativo\" /></body></html>";
    mWebView.loadDataWithBaseURL("", html, "text/html", "utf-8", "");

Ответы [ 3 ]

5 голосов
/ 26 ноября 2011

Попробуйте,

        final String fileName = "file:///mnt/sdcard/1.jpg";
        final String mimeType = "text/html";
        final String encoding = "utf-8";
        final String html = "<img src=\""+fileName+"\">";
        webView.loadDataWithBaseURL("", html, mimeType, encoding, "");
2 голосов
/ 26 ноября 2011

Проверьте loadDataWithBaseURL () в документации для разработчиков.

http://developer.android.com/reference/android/webkit/WebView.html

loadData () имеет определенные ограничения на то, что он может отображать.Этот метод может отображать локальные файлы устройства, как вы пытаетесь сделать.

0 голосов
/ 12 июня 2012

Обратите внимание, что доступ с использованием схемы file: // может завершиться неудачей из-за ограничений безопасности.

Другой подход заключается в использовании URI ContentProvider, который обрабатывает локальный доступ к файлам.Для этого подхода перезаписать openFile (Uri, String) в подклассе ContentProvider.

...