json字符串为html语言,怎么显示在手机上

来源:互联网 发布:觉悟软件在线注册码 编辑:程序博客网 时间:2024/04/28 12:55
后台Json返回的字符串,某个字段的内容是一个字符串,但是字符串里面的内容是一段html语言,该语言的内容包括文字与
          图片,怎么拿到内容显示在手机上?
     
          1)首先通过jsonObject根据该字段拿到字段后面的内容:
                String data= jsonObject.getString("description");
          2)通过WebView显示内容,webView.loadDataWithBaseURL(null,data,"text/html","UTF-8",null);
                头尾两个参数是url,这里不用管,因为要显示的只是后台返回的字符串内容。
          3)注意:这里不要使用webView.loadData(data3,"text/html","UTF-8");
                因为使用这个方法有很多毛病,图片不能显示或者文字乱码。
                本人遇到的问题:
                a.使用loadData,如果只在后面指定UTF-8,则图片是能显示的,但是文字是乱码;
                b.如果对data进行了Unicode的转码,则图片不能显示,显示的是乱码。
                所以这个方法不要使用。
          4)为什么不要使用loadData方法?
                如果字段后面的内容有文字以及图片,则该方法显示有问题。
                如果包含的内容只有文字,那么我们连webView都可以不用了,显示内容我们直接用一个TextView即可,步骤:
                         a.在XML文件中定义一个TextView;
                         b.通过jsonObject根据该字段拿到字段后面的内容;
                              String data= jsonObject.getString("description");
                         c.把内容转成Spanned:
                              Spanned spanned = Html.fromHtml(data);
                         d.给控件设置内容:
                              findView(R.id.textview).setText(spanned);
                              Spanned和String类型都是集成自CharSequence,所以可以直接给textView设置文本内容,并且设置出来的
                              内容是带有html格式的--即设置出来的内容和网页显示的内容格式是一致的,这个用起来比较方便,虽然我们
                              是用一个TextView设置的内容,但是显示的时候会根据网页内容一样有换行等。

                    如果返回的内容是有图片,我们用这种方法也可以让图片显示出来,但是显示的图片有时候会有问题,图片只是
                    显示一小块,并且不显示图片本身的内容,像是一个默认的图片,很小。
             5)如果返回的字段内容只包含图片,没有内容,可以用webView.loadData方法。
                    网上说这个方法不能加载出来图片,但是经过亲测发现的确是可以加载出来的,可能是在某些情况下不能,这个
                    情况还没有遇到过。
1 0
原创粉丝点击