Android 富文本處理

最近遇到了一些富文本處理的坑唇敞,特此分享下

TextView

Html.fromHtml(data.getPro_job())
這個(gè)方式最簡(jiǎn)單墩弯,缺陷是不能解析ul兰英、li等類型標(biāo)簽玷坠。

RichText

RichText.from(data.getPro_job()).into(wvDes);

RichText 是Android平臺(tái)下的富文本解析器蜗搔,支持Html和Markdown,這樣就可以解析ul等標(biāo)簽八堡,但缺陷是字體樣式加載會(huì)有問題樟凄,比如說加粗、顏色等兄渺。

WebView

建議使用騰訊x5瀏覽器缝龄,使用方法可查看另一篇博客【Android Web】騰訊X5瀏覽器的集成與常見問題

webView.loadDataWithBaseURL("", data.getPro_intro(), "text/html", "utf-8", null);

如果不是完整的html,可以手動(dòng)添加完整標(biāo)簽

   /**
     * 加載html標(biāo)簽
     *
     * @param bodyHTML
     * @return
     */
    private String getHtmlData(String bodyHTML) {
        String head = "<head>" +
                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " +
                "<style>img{max-width: 100%; width:auto; height:auto!important;}</style>" +
                "</head>";
        return "<html>" + head + "<body>" + bodyHTML + "</body></html>";
    }

webview在解析標(biāo)簽上沒有問題挂谍,但是又引發(fā)了另一個(gè)問題叔壤,ScrollView嵌套下,底部會(huì)有一大片的空白口叙。

這個(gè)問題有2種處理方式

  • 獲取html的內(nèi)容高度炼绘,然后再設(shè)置給webview
        wvDes.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView webView, String s) {
                super.onPageFinished(webView, s);
                wvDes.loadUrl("javascript:app.resize(document.body.getBoundingClientRect().height)");
            }
        });

        wvDes.addJavascriptInterface(new WebViewJavaScriptFunction() {
            @Override
            public void onJsFunctionCalled(String tag) {

            }

            @JavascriptInterface
            public void resize(int height) {
                wvDes.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, height + 80);
                        wvDes.setLayoutParams(params);
                    }
                }, 100);

            }

        }, "app");

但是,經(jīng)測(cè)試妄田,在部分華為手機(jī)上俺亮,document.body.getBoundingClientRect().height獲取的高度不正確,只能無奈放棄疟呐。

  • addView
        mParentLayout.removeAllViews();
        WebView webView = new WebView(this);
        webView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        webView.loadDataWithBaseURL("", data.getPro_intro(), "text/html", "utf-8", null);
        mParentLayout.addView(webView);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铅辞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子萨醒,更是在濱河造成了極大的恐慌,老刑警劉巖苇倡,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件富纸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡旨椒,警方通過查閱死者的電腦和手機(jī)晓褪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來综慎,“玉大人涣仿,你說我怎么就攤上這事。” “怎么了好港?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵愉镰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我钧汹,道長(zhǎng)丈探,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任拔莱,我火速辦了婚禮碗降,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘塘秦。我一直安慰自己讼渊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布尊剔。 她就那樣靜靜地躺著爪幻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赋兵。 梳的紋絲不亂的頭發(fā)上笔咽,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音霹期,去河邊找鬼叶组。 笑死,一個(gè)胖子當(dāng)著我的面吹牛历造,可吹牛的內(nèi)容都是我干的甩十。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼吭产,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼侣监!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起臣淤,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤橄霉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后邑蒋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姓蜂,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年医吊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钱慢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卿堂,死狀恐怖束莫,靈堂內(nèi)的尸體忽然破棺而出懒棉,到底是詐尸還是另有隱情,我是刑警寧澤览绿,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布策严,位于F島的核電站,受9級(jí)特大地震影響挟裂,放射性物質(zhì)發(fā)生泄漏享钞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一诀蓉、第九天 我趴在偏房一處隱蔽的房頂上張望栗竖。 院中可真熱鬧,春花似錦渠啤、人聲如沸狐肢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽份名。三九已至,卻和暖如春妓美,著一層夾襖步出監(jiān)牢的瞬間僵腺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工壶栋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辰如,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓贵试,卻偏偏與公主長(zhǎng)得像琉兜,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子毙玻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 先上效果圖 一豌蟋、初識(shí)TextView富文本 接觸Android以來,都不知道TextView能完成的事情原來不止于...
    YC1995閱讀 4,198評(píng)論 1 2
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,089評(píng)論 1 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5桑滩? 答:HTML5是最新的HTML標(biāo)準(zhǔn)梧疲。 注意:講述HT...
    kismetajun閱讀 27,422評(píng)論 1 45
  • 轉(zhuǎn)自 http://www.reibang.com/p/3ad7c39858ec 不知不覺,Hybird App已...
    龐哈哈哈12138閱讀 3,872評(píng)論 0 9
  • 這篇博客主要來介紹 WebView 的相關(guān)使用方法,常見的幾個(gè)漏洞戳吝,開發(fā)中可能遇到的坑和最后解決相應(yīng)漏洞的源碼,以...
    Shawn_Dut閱讀 7,209評(píng)論 3 55