Android 保存WebView中的圖片示例
前言
項(xiàng)目中有需求在APP的Webview中長按圖片可以保存。后來就去研究一下該怎么實(shí)現(xiàn),順便整理了一下。
WebView基本配置
mWvContent.getSettings().setJavaScriptEnabled(true); mWvContent.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); mWvContent.getSettings().setDomStorageEnabled(false); mWvContent.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 自適應(yīng)屏幕 mWvContent.getSettings().setUseWideViewPort(true); mWvContent.getSettings().setLoadWithOverviewMode(true);
注冊ContextMenu
registerForContextMenu(mWvContent);
重寫下面的方法即可保存圖片
@Override public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) { super.onCreateContextMenu(contextMenu, view, contextMenuInfo); final WebView.HitTestResult webViewHitTestResult = mWvContent.getHitTestResult(); if (webViewHitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE || webViewHitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) { contextMenu.setHeaderTitle("網(wǎng)頁中下載圖片"); contextMenu.add(0, 1, 0, "點(diǎn)擊保存") .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { String DownloadImageURL = webViewHitTestResult.getExtra(); if (URLUtil.isValidUrl(DownloadImageURL)) { DownloadManager.Request request = new DownloadManager.Request(Uri.parse(DownloadImageURL)); request.allowScanningByMediaScanner(); //設(shè)置圖片的保存路徑 request.setDestinationInExternalFilesDir(WebViewActivity.this, "/img", "/a.png"); DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); downloadManager.enqueue(request); Toast.makeText(WebViewActivity.this, "下載成功", Toast.LENGTH_LONG).show(); } else { Toast.makeText(WebViewActivity.this, "下載失敗", Toast.LENGTH_LONG).show(); } return false; } }); } }
需要添加相關(guān)權(quán)限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
這樣就可以實(shí)現(xiàn)在Webview中長按圖片點(diǎn)擊下載功能了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android studio 新手入門教程(三)Github( ignore忽略規(guī)則)的使用教程圖解
這篇文章主要介紹了android studio 新手入門教程(三)Github( ignore忽略規(guī)則)的使用教程圖解,需要的朋友可以參考下2017-12-12Android編程實(shí)現(xiàn)圖片的瀏覽、縮放、拖動和自動居中效果
這篇文章主要介紹了Android編程實(shí)現(xiàn)圖片的瀏覽、縮放、拖動和自動居中效果,以具體實(shí)例形式分析了Android針對圖片各種常見顯示效果的布局及功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-11-11Android開發(fā)之ListView實(shí)現(xiàn)Item局部刷新
對于ListView數(shù)據(jù)的刷新大家都知道,改變Adapter的數(shù)據(jù)源,然后調(diào)用Adapter的notifyDateSetChanged()方法即可。通過本篇文章給大家詳細(xì)介紹Android開發(fā)之ListView實(shí)現(xiàn)Item局部刷新,感興趣的朋友一起學(xué)習(xí)吧2015-10-10Android使用GridView實(shí)現(xiàn)日歷的簡單功能
這篇文章主要為大家詳細(xì)介紹了Android使用GridView實(shí)現(xiàn)日歷的簡單功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12android dialog根據(jù)彈窗等級排序顯示的示例代碼
這篇文章主要介紹了android dialog根據(jù)彈窗等級排序顯示,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10Android最新版本開發(fā)環(huán)境搭建圖文教程
這篇文章主要為大家詳細(xì)介紹了Android最新版本開發(fā)環(huán)境搭建圖文教程,重點(diǎn)在于配置JDK,以及adt-bundle,感興趣的小伙伴們可以參考一下2016-07-07