本文實例講述了Android開發實現webview中img標簽加載本地圖片的方法。分享給大家供大家參考,具體如下:
在網上查了很多教程,感覺很麻煩,各種方法,最后實踐很簡單,主要是兩步:
WebSettings webSettings=webView.getSettings();//允許webview對文件的操作webSettings.setAllowUniversalAccessFromFileURLs(true);webSettings.setAllowFileAccess(true);webSettings.setAllowFileAccessFromFileURLs(true);
其次是路徑的設置
String path= "file://"+Environment.getExternalStorageDirectory()+ File.separator+"123.jpg";
一定是file:///開頭,注意是三個斜杠
下面是結果:
執行代碼之前

執行代碼之后

html代碼
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>Title</title></head><body><img id="img" var img=document.getElementById("img"); img.src=path;}</script></body></html>Android代碼
package com.example.a5.myapplication;import android.os.Environment;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import java.io.File;public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView= (WebView) findViewById(R.id.webView); WebSettings webSettings=webView.getSettings(); //允許webview對文件的操作 webSettings.setAllowUniversalAccessFromFileURLs(true); webSettings.setAllowFileAccess(true); webSettings.setAllowFileAccessFromFileURLs(true); //用于js調用Android webSettings.setJavaScriptEnabled(true); //設置編碼方式 webSettings.setDefaultTextEncodingName("utf-8"); webView.setWebChromeClient(new chromClient()); //訪問Android assets文件夾內的 String url="file:///android_asset/test.html"; //訪問網頁Html// String url="http://192.168.1.121:8080/jsandroid/index.html"; runWebView(url); } private class chromClient extends WebChromeClient{ @Override public void onProgressChanged(WebView view, int newProgress) { if(newProgress==100){ //頁面加載完成執行的操作 String path= "file://"+Environment.getExternalStorageDirectory()+ File.separator+"123.jpg"; String action="javascript:aa('"+path+"')"; new AlertDialog.Builder(MainActivity.this) .setMessage(action) .show(); runWebView(action); } super.onProgressChanged(view, newProgress); } } private void runWebView(final String url){ runOnUiThread(new Runnable() { @Override public void run() { webView.loadUrl(url); } }); }}希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答