日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中利用Jsoup让WebView清除Html标签并让图片适应大小并居中

發(fā)布時間:2025/3/21 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中利用Jsoup让WebView清除Html标签并让图片适应大小并居中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ?在App應用中,我們常常會加載一些新聞、通知等內容,這些內容很多來自于數據庫中存儲的HTML文本,里面的標簽雜亂不堪,且內容中又包括圖片等。

? ? ? ?處理這些內容,我們可以利用正則表達式來處理,但標簽太多,太雜,又想保留換行等格式,正則表達式寫起來麻煩,我是個懶人,于是有了更簡便的方法,就是利用Jsoup來處理。示例HTML代碼如下:

<p style="\&quot;font-family:" simsun;="" font-size:="" 14px;\"="">&nbsp; &nbsp;記者從貴陽市旅游產業(yè)發(fā)展委獲悉,國慶黃金周臨近,爽爽貴陽一片秋意濃。即日起,市內各大景區(qū)景點紛紛推出各類特色國慶、中秋主題節(jié)慶活動,給市民游客帶來一個豐盛的節(jié)日盛宴。</p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"=""><img id="\&quot;6276046\&quot;" title="\&quot;\&quot;" border="\&quot;0\&quot;" src="\&quot;http://www.gywb.cn/xinwen/attachement/jpg/site2/20170927/3417eb9bc7b41b35c33901.jpg\&quot;" sourcedescription="\&quot;編輯提供的本地文件\&quot;" sourcename="\&quot;本地文件\&quot;" data-bd-imgshare-binded="\&quot;1\&quot;" style="\&quot;max-width:" 100%;="" height:="" 500px;="" width:="" 400px;\"="" /></p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"="">&nbsp;&nbsp;&nbsp;&nbsp;圖為20萬盆菊花扮靚花畫小鎮(zhèn),與市民游客一起迎國慶</p><p style="\&quot;font-family:" simsun;="" font-size:="" 14px;\"="">&nbsp; &nbsp;長假期間,國家5A級旅游景區(qū)青巖古鎮(zhèn)將開展豐富多彩的民族文藝演出,演出內容包括滾山珠、錦雞舞等貴州非遺文化品牌節(jié)目。在狀元街,知名專家將現場傳授植物扎染及香囊制作工藝體驗。同時,貴州飯店國際會議中心將開通“青巖古鎮(zhèn)旅游直通車”,每天發(fā)車,貴州飯店至青巖古鎮(zhèn)28元/人/趟、大學城至青巖古鎮(zhèn)10元/人/趟。</p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;\"=""><img id="\&quot;6276048\&quot;" title="\&quot;\&quot;" border="\&quot;0\&quot;" src="\&quot;http://www.gywb.cn/xinwen/attachement/jpg/site2/20170927/3417eb9bc7b41b35c34502.jpg\&quot;" sourcedescription="\&quot;編輯提供的本地文件\&quot;" sourcename="\&quot;本地文件\&quot;" data-bd-imgshare-binded="\&quot;1\&quot;" style="\&quot;max-width:" 100%;="" height:="" 350px;="" width:="" 500px;\"="" /></p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"="">&nbsp;圖為20萬盆菊花扮靚花畫小鎮(zhèn),與市民游客一起迎國慶</p><p style="\&quot;font-family:" simsun;="" font-size:="" 14px;\"="">&nbsp; &nbsp;秋高氣爽看10月,在烏當區(qū)花畫小鎮(zhèn),20萬盆菊花上山,穿上盛裝迎接國慶中秋“雙節(jié)”。此次花展將從10月1日持續(xù)至11月30日,共兩個月。游客不僅可在園區(qū)“廊橋”欣賞菊花種類、食用藥用價值和有關菊花的文學作品等知識展板,還可在菊展的三個展銷區(qū)域,免費領取菊花茶一袋,每日限量300份。此外,還有優(yōu)秀國畫及書法作品,讓游客近距離感受中國文化的博大精深;在菊花詩詞朗誦區(qū)域,園區(qū)將為游客提供一個文化展示與才藝交流的平臺。</p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"=""><img id="\&quot;6276052\&quot;" title="\&quot;\&quot;" border="\&quot;0\&quot;" src="\&quot;http://www.gywb.cn/xinwen/attachement/jpg/site2/20170927/3417eb9bc7b41b35c35804.jpg\&quot;" sourcedescription="\&quot;編輯提供的本地文件\&quot;" sourcename="\&quot;本地文件\&quot;" data-bd-imgshare-binded="\&quot;1\&quot;" style="\&quot;max-width:" 100%;="" height:="" 350px;="" width:="" 400px;\"="" /></p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"="">&nbsp;圖為20萬盆菊花扮靚花畫小鎮(zhèn),與市民游客一起迎國慶</p><p style="\&quot;font-family:" simsun;="" font-size:="" 14px;\"="">&nbsp; &nbsp;雙節(jié)期間,修文縣將舉辦“野生動物園現場特惠+農業(yè)嘉年華現場特惠”、“漂流(上半程)+朵芳閣桃源河酒店”等活動,凡10月1日-7日期間游玩野生動物園的游客,用手機與動物園小動物自拍合影,以及赴農業(yè)嘉年華進行參觀的游客,用手機在現場自拍,經工作人員驗證后,桃源河漂流上半段票價可享受學生票價80元/人優(yōu)惠。此外,中秋節(jié)10月4日當天,游客還可在朵芳閣參與免費領月餅、猜燈謎等活動。</p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"=""><img id="\&quot;6276054\&quot;" title="\&quot;\&quot;" border="\&quot;0\&quot;" align="\&quot;center\&quot;" src="\&quot;http://www.gywb.cn/xinwen/attachement/jpg/site2/20170927/3417eb9bc7b41b35c36305.jpg\&quot;" sourcedescription="\&quot;編輯提供的本地文件\&quot;" sourcename="\&quot;本地文件\&quot;" data-bd-imgshare-binded="\&quot;1\&quot;" style="\&quot;max-width:" 100%;="" height:="" 350px;="" width:="" 500px;\"="" /></p><p align="\&quot;center\&quot;" style="\&quot;font-family:" simsun;="" font-size:="" 14px;="" text-align:="" center;\"="">&nbsp;圖為20萬盆菊花扮靚花畫小鎮(zhèn),與市民游客一起迎國慶</p><p style="\&quot;font-family:" simsun;="" font-size:="" 14px;\"="">&nbsp; &nbsp;貴陽市旅游產業(yè)發(fā)展委溫馨提醒廣大游客,出行前做好計劃,提早了解景區(qū)的開放情況和周邊交通、餐飲、天氣等。出游的過程中要注意安全,遵守景區(qū)的安全警示,游客在身體不適的情況下不要勉強進行旅游活動。通過網絡等自由組團進行戶外探險等活動時,要詳細了解組織者的身份、資質,目的地的氣候、團友的組成結構等信息,事先做好充分的準備。此外,游客還應遵守法律規(guī)定,做到文明出行。</p>

?

? ? ? ?下面,我們就來一步步處理這些內容并顯示

?

? ? ? ?1、要在App的build.gradle引入Jsoup

implementation 'org.jsoup:jsoup:1.11.3'

? ? ? ?2、設置WebView屬性

WebSettings webSettings = webView.getSettings();//獲取WebView的設置屬性webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//把html中的內容放大到WebView等寬的一列中webSettings.setJavaScriptEnabled(true);//讓WebView支持jswebSettings.setSupportZoom(true); // 可以縮放webSettings.setBuiltInZoomControls(true); // 顯示放大縮小(這個不設置則縮放不起作用)webSettings.setDisplayZoomControls(false);//不顯示webview縮放按鈕(通過這個設置則可以不顯示那個縮放工具條)

? ? ? ?3、添加一段css樣式以讓WebView按新的樣式顯示,在這段樣式中設定了字體大小,圖片大小以及水平居中

    private static final String cssStart = "<html>" + "\n"+"<header>" + "\n"+"<style type=\"text/css\"> img {" +"width:90%;" +"height:auto;" +"display:block;" +"clear:both;" +"margin:auto" +"}" + "\n" +"body {" +"margin-right:15px;" +"margin-left:15px;" +"margin-top:15px;" +"font-size:21px;" +"}" + "\n" +"</style>" + "\n" +"</header>" + "\n" +"<body>" +"\n";     private static final String cssEnd = "\n"+"</body>"+"\n"+"</html>";

? ? ? ?4、寫一個簡單的處理函數來清理HTML內容并保留換行格式以及添加新的css樣式

    public static String getNewHtml(String htmlText){       try {htmlText =         htmltext = Jsoup.clean(htmltext,Whitelist.basicWithImages());         htmltext = cssStart+htmltext+cssEnd;
  
      return htmltext;       
      }
catch (Exception e) {         
        return
htmltext;       
      }     
    }

? ? ? ?5、通過上述處理后,我們就可以直接用WebView來處理了

    webView.loadData(getNewHtml(htmlText), "text/html; charset=UTF-8", null);

  顯示效果如下圖:

  通過一系列的處理,我們已經將不同格式的HTML以及HTML中不同大小的圖片按照統(tǒng)一的標準來展示,同時保留了原來的換行格式。

  注:Jsoup clena的參數說明

  WhiteList中有幾個參數選項

  1、none() ?

  只保留文本,其他所有的html內容均被刪除

  2、basic()?

  允許的標簽包括: a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul,以及合適的屬性。標簽a指向的連接可以是 http, https, ftp, mailto,轉換完后會強制添加 rel=nofollow這個屬性。不允許包含圖片。

  3、basicWithImages()

  在basic的基礎上增加了圖片的標簽:img以及使用src指向http或https類型的圖片鏈接。

  4、simpleText()

  只允許: b, em, i, strong, u

  5、relaxed()?

  允許的標簽: a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul。結果不包含標簽rel=nofollow ,如果需要可以手動添加。

  如果只想保留文本及換行,則clean的代碼換成如下:

    String htmlText=Jsoup.clean(html, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));

  其中白名單根據自己的需求進行變更。

  

?

轉載于:https://www.cnblogs.com/walkingblue/p/9013977.html

總結

以上是生活随笔為你收集整理的Android中利用Jsoup让WebView清除Html标签并让图片适应大小并居中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。