999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android開發(fā)中對HTML內(nèi)容的顯示

2015-10-24 20:03:06胡暢霞
科技傳播 2015年16期
關鍵詞:內(nèi)容方法

米 建,胡暢霞,劉 穎

石家莊鐵道大學信息科學與技術學院,河北石家莊 050043

Android開發(fā)中對HTML內(nèi)容的顯示

米 建,胡暢霞,劉 穎

石家莊鐵道大學信息科學與技術學院,河北石家莊 050043

隨著Android科技的發(fā)展,手機客戶端接受了更多的HTML內(nèi)容。本文作者采用WebView直接顯示法結(jié)合人機交互的原則,從用戶體驗的角度解析傳入的HTML內(nèi)容,顯示出完整的圖文內(nèi)容。

Android;HTML標簽;WebView

Android智能手機已經(jīng)在我們現(xiàn)實生活中無處不在,成為我們生活中不可或缺的一部分,Android應用充斥和豐富著我們的生活。隨著互聯(lián)網(wǎng)的發(fā)展和手機網(wǎng)速的提升Android客戶端獲取網(wǎng)絡的信息資源已是稀松平常,獲取的信息中帶有HTML內(nèi)容是必不可少的,如果把HTML標記去掉很大程度上會破壞資源的完整性,即便獲取了資源內(nèi)的文字但文字的樣式也會消失,資源內(nèi)的鏈接和圖片同樣會消失。在這種形勢下Android客戶端對HTML內(nèi)容的解析就是大勢所趨。

1 方法介紹

Android對HTML內(nèi)容解析主要有四種方法:1)Java正則表達式過濾法,Java正則表達式(Regular Expression)就是一個字符構(gòu)成的串,這個方法可以搜索提取出任何你想要的字符串,只要找到一個符合要求的正則表達式就可以過濾去除HTML標簽;2)jsoup 解析器解析法,jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文本內(nèi)容等。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jquery的操作方法來取出和操作數(shù)據(jù);3)TextView自帶類解析法,Android提供了android.text.Html類和Html. ImageGetter、Html.TagHandler接口,格式化字符串為HTML樣式處理后再在TextView中顯示;4)WebView直接顯示法,Android提供了方便非格式化方法不需要轉(zhuǎn)碼直接在WebView中顯示。

2 實際解決方案

2.1 需求分析

本人在承擔河北省大學生創(chuàng)新項目《“互聯(lián)網(wǎng)+”下畢業(yè)設計評價系統(tǒng)》中遇到了在Android客戶端顯示HTML內(nèi)容的問題。在通知公告二級頁面中,主體顯示通知公告的具體內(nèi)容,通知公告的內(nèi)容是從后臺數(shù)據(jù)庫中讀取,數(shù)據(jù)庫中通知內(nèi)容字段存儲的既有文字還有HTML標簽,這兩者組成了整體。在手機客戶端正確合理顯示HTML內(nèi)容成為了本界面的一個關鍵。

2.2 解決方案

作者首先采用了Java正則表達式過濾法,用過濾HTML標簽的正則表達式(“〈([^〉]*)〉”)過濾去除HTML標簽,只得到了內(nèi)容中的文字但HTML標簽的功能由于被剔除而消失,段落格式、圖片、鏈接等內(nèi)容無法顯示。jsoup選擇器選擇出img標簽來單獨顯示圖片,但是這種方法就破壞了文字和圖片的整體性,降低了用戶體驗不利于人機交互。TextView自帶類解析法可以使HTML內(nèi)容中的文字和圖片整體顯示,并且解析后文字擁有原有的段落格式和顏色,解析后若文字過小或者圖片過大,這很大程度上會影響用戶體驗,并且TextView是不支持縮放,這就需要一種更人性化的解析方式。

作者采用了WebView直接顯示法,優(yōu)勢主要有兩個,一是可以輕松更改需要展現(xiàn)的內(nèi)容(包括樣式),二是可以實現(xiàn)部分功能的跨平臺。WebView加載HTML代碼的方法主要有:1)WebView.loadUrl(String strhtml)方 法;2)WebView.loadData(String data,String mimeType, String encoding)方 法;3)loadDataWithBaseURL()方法。

作者采用了第三種方法顯示HTML內(nèi)容:loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl),在baseUrl的賦值上,并非要傳一個Url參數(shù),因為它只是一個標志位,用來標志當前頁面的Key值。historyUrl為value值,在加載時,它會把baseUrl和historyUrl傳到List列表中,當作歷史記錄來使用,當前進和后退時,它會通過baseUrl來尋找historyUrl的路徑,通過加載historyUrl路徑來加載歷史界面。使用這種方法不需要先將HTML內(nèi)容進行轉(zhuǎn)碼,直接可以顯示。實例代碼:webView. loadDataWithBaseURL( null, massage, “text/ html”, “utf-8”, null),massage為作者從數(shù)據(jù)庫中獲得HTML內(nèi)容字段,并非獲取字段后直接傳入到loadDataWithBaseURL()方法中,需要對HTML標簽進行路徑補全處理。

HTML標簽是由眾多功能標簽組成,img標簽是重要的組成部分,img標簽中的圖片路徑分為絕對路徑和相對路徑。在Android客戶端解析HTML標簽時,圖片的鏈接路徑必須是相對路徑才能在WebView中顯示出完整的圖片,否則只有圖片的邊緣。但在網(wǎng)站中的圖片很多都是絕對路徑這就需要對img標簽進行單獨的處理將絕對路徑轉(zhuǎn)化為相對路徑。操作主要分為兩步:第一步判斷HTML標簽中是否含有img標簽;第二步帶有絕對路徑的img標簽利用字符串補全替代法,將路徑補充完整。字符串的替換會影響html代碼的顯示速度,所以需要判斷HTML標簽中是否含有img標簽,降低字符串替換對顯示效率的影響。在判斷是否含有img標簽時,首先利用jsoup解析器解析出img標簽再進行if判斷。示例代碼:String massage1 = massage.replaceAll(“(.*?) src=”(.*?)”,”$1src=”http://cems.stdu.edu. cn”)。

在本次項目中作者添加了一些人性化的操作,例如雙擊屏幕實現(xiàn)自適應屏幕功能,添加此功能遵循了人機交互原則,增強了用戶體驗。功能的實現(xiàn)是Android提供了WebSetting工具類,工具類中專門設置WebView的一些特征、屬性,只需要設置WebView的如下這些屬性。

1)WebView.getSettings(). setSupportZoom(true);// 設置可以支持縮放

2)WebView.getSettings(). setBuiltInZoomControls(true);// 設置出現(xiàn)縮放工具

需要注意的是WebView顯示HTML內(nèi)容的速度比較慢尤其是加載網(wǎng)頁時,建議對圖片進行延遲載入處理,并將耗時加載操作放到子線程中來提高顯示效率。

3 結(jié)論

在Android手機客戶端顯示HTML內(nèi)容有多種方式,每種方式都有各自的優(yōu)缺點,在項目研發(fā)過程中,可根據(jù)需求來選擇高效的解析方法。

[1]明日科技.Android從入門到精通[M].清華大學出版社,2010.

[2]李剛.瘋狂Android講義[M].電子工業(yè)出版社,2013.

[3]邁耶.Android4高級編程[M].3版.2013.

TN91

A

1674-6708(2015)145-0049-01

米建,石家莊鐵道大學信息科學與技術學院學生,本科,教育技術學

猜你喜歡
內(nèi)容方法
內(nèi)容回顧溫故知新
科學大眾(2022年11期)2022-06-21 09:20:52
內(nèi)容回顧 溫故知新
科學大眾(2021年21期)2022-01-18 05:53:48
內(nèi)容回顧溫故知新
科學大眾(2021年17期)2021-10-14 08:34:02
學習方法
可能是方法不對
主要內(nèi)容
臺聲(2016年2期)2016-09-16 01:06:53
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 狠狠色香婷婷久久亚洲精品| 99热在线只有精品| 欧美成人精品在线| 99热这里只有成人精品国产| AV无码一区二区三区四区| 国产精品自在在线午夜| 亚洲综合经典在线一区二区| 成年网址网站在线观看| 日本一区二区不卡视频| 一级福利视频| 亚洲av日韩av制服丝袜| 中文字幕亚洲专区第19页| 99热这里只有精品在线观看| 狠狠色成人综合首页| 国产亚洲精品在天天在线麻豆 | 国产精品综合久久久| 精品夜恋影院亚洲欧洲| 亚洲精品国产综合99| 亚洲精品自拍区在线观看| 国产91精品调教在线播放| 伊人精品成人久久综合| 国产精品第一区在线观看| 国产成人精品高清不卡在线| 亚洲第一成年免费网站| 欧美成人看片一区二区三区| 久久夜色撩人精品国产| 日本精品影院| 日本一区二区三区精品国产| 亚洲天堂成人| 色偷偷男人的天堂亚洲av| 国产老女人精品免费视频| 亚洲毛片一级带毛片基地| 国产在线98福利播放视频免费| 人妻夜夜爽天天爽| 国产高清在线精品一区二区三区| 亚洲无码视频喷水| 日本一区二区三区精品AⅤ| 亚洲欧洲自拍拍偷午夜色无码| 国产成人超碰无码| 欧美午夜网站| 无码高潮喷水专区久久| 欧洲日本亚洲中文字幕| 美女啪啪无遮挡| 国产簧片免费在线播放| 91九色国产在线| 国产成人区在线观看视频| 国产精品视频第一专区| 久视频免费精品6| 综合色天天| 国产亚洲高清视频| 亚洲成AV人手机在线观看网站| 国产成人乱无码视频| 国产精品爽爽va在线无码观看 | 欧美a级在线| 亚洲国产天堂久久综合| 亚洲综合网在线观看| 久久人搡人人玩人妻精品| 日本一区二区三区精品国产| 国产精品九九视频| 美美女高清毛片视频免费观看| 日本免费一区视频| 欧美日韩一区二区在线播放| 欧美一级色视频| 91av国产在线| 亚洲毛片一级带毛片基地| 国产成年女人特黄特色毛片免| 国产又黄又硬又粗| 欧美成a人片在线观看| 久久情精品国产品免费| 2021精品国产自在现线看| 久久久噜噜噜久久中文字幕色伊伊| 午夜国产大片免费观看| 99无码熟妇丰满人妻啪啪 | 白丝美女办公室高潮喷水视频| 就去吻亚洲精品国产欧美| 欧美视频在线观看第一页| 91av成人日本不卡三区| 在线观看91精品国产剧情免费| 嫩草国产在线| 亚洲日韩Av中文字幕无码| 久久午夜夜伦鲁鲁片不卡| 九九线精品视频在线观看|