Android開發(fā)實(shí)現(xiàn)webview中img標(biāo)簽加載本地圖片的方法
本文實(shí)例講述了Android開發(fā)實(shí)現(xiàn)webview中img標(biāo)簽加載本地圖片的方法。分享給大家供大家參考,具體如下:
在網(wǎng)上查了很多教程,感覺很麻煩,各種方法,最后實(shí)踐很簡(jiǎn)單,主要是兩步:
WebSettings webSettings=webView.getSettings(); //允許webview對(duì)文件的操作 webSettings.setAllowUniversalAccessFromFileURLs(true); webSettings.setAllowFileAccess(true); webSettings.setAllowFileAccessFromFileURLs(true);
其次是路徑的設(shè)置
String path= "file://"+Environment.getExternalStorageDirectory()+ File.separator+"123.jpg";
一定是file:///開頭,注意是三個(gè)斜杠
下面是結(jié)果:
執(zhí)行代碼之前
執(zhí)行代碼之后
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" alt="上海鮮花港 - 郁金香" style="width: 100%;height: 100%"/> <script> function aa(path){ alert(path); 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對(duì)文件的操作 webSettings.setAllowUniversalAccessFromFileURLs(true); webSettings.setAllowFileAccess(true); webSettings.setAllowFileAccessFromFileURLs(true); //用于js調(diào)用Android webSettings.setJavaScriptEnabled(true); //設(shè)置編碼方式 webSettings.setDefaultTextEncodingName("utf-8"); webView.setWebChromeClient(new chromClient()); //訪問Android assets文件夾內(nèi)的 String url="file:///android_asset/test.html"; //訪問網(wǎng)頁(yè)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){ //頁(yè)面加載完成執(zhí)行的操作 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); } }); } }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android布局layout技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
android實(shí)現(xiàn)定時(shí)拍照并發(fā)送微博功能
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)定時(shí)拍照并發(fā)送微博功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Android Dialog對(duì)話框?qū)嵗a講解
本文通過實(shí)例代碼給大家介紹了Android Dialog對(duì)話框的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08Android studio設(shè)置文件頭定制代碼注釋的方法
這篇文章主要介紹了Android studio設(shè)置文件頭定制代碼注釋的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08Android異步加載數(shù)據(jù)和圖片的保存思路詳解
這篇文章主要介紹了Android異步加載數(shù)據(jù)和圖片的保存思路詳解的相關(guān)資料,需要的朋友可以參考下2016-04-04Jetpack Compose自定義動(dòng)畫與Animatable詳解
在今年的Google/IO大會(huì)上,亮相了一個(gè)全新的 Android 原生 UI 開發(fā)框架-Jetpack Compose, 與蘋果的SwiftIUI一樣,Jetpack Compose是一個(gè)聲明式的UI框架,這篇文章主要介紹了Jetpack Compose自定義動(dòng)畫與Animatable2022-10-10