android+显示html内容居中显示图片,Android开发中对HTML内容的显示

摘 要 随着Android科技的发展,手机客户端接受了更多的HTML内容。本文作者采用WebView直接显示法结合人机

>> Android开发中的主题设置研究 线程在Android开发中的应用 HTML5在移动互联网开发中的应用分析 HttpClient组件及其在Android开发中的应用探讨 Android开发中Broadcast,HttpClient及JSON Parser的使用 浅谈SurfaceView在Android开发中的应用 Web Service在Android开发中的应用研究 Android开发的性能优化 基于html5及android平台的幼儿接送系统 基于android系统的图像内容检测 Wap手机WAP访问,随时随地读杂志'; htmlFooter += 'Wap手机WAP访问,随时随地读杂志'; } else { html += 'Wap手机WAP访问,随时随地读杂志'; htmlFooter += 'Wap手机WAP访问,随时随地读杂志'; } } if ('') { html += 'WinPhone AppWinPhone移动终端专用'; htmlFooter += 'WinPhone AppWinPhone移动终端专用'; } if ('') { html += 'Win8 AppWin8 App终端专用'; htmlFooter += 'Win8 AppWin8 App终端专用'; } if ('') { html += 'Android PhoneAndroid移动终端专用'; htmlFooter += 'Android PhoneAndroid移动终端专用'; } if ('') { html += 'Android PadAndroid移动终端专用'; htmlFooter += 'Android PadAndroid移动终端专用'; } if ('') { html += 'iPhoe="height: auto" title='论舞蹈教学中引导教育的重要性'> 论舞蹈教学中引导教育的重要性 HTML5的新特性及其在基于Web的教学平台开发中的应用前景 浅议WEB开发的新标准HTML5 基于HTML5技术的Web监控界面开发 基于Html5技术的WEB开发 Android平台下双屏切换显示的设计 基于Android平台的GPS开发研究 Android的架构与应用开发探讨 基于android平台赛马游戏的开发 高职《Android 开发》课程的探索 常见问题解答 当前所在位置:l类和Html.ImageGetter、Html.TagHandler接口,格式化字符串为HTML样式处理后再在TextView中显示;4)WebView直接显示法,Android提供了方便非格式化方法不需要转码直接在WebView中显示。

2 实际解决方案

2.1 需求分析

本人在承担河北省大学生创新项目《“互联网+”下毕业设计评价系统》中遇到了在Android客户端显示HTML内容的问题。在通知公告二级页面中,主体显示通知公告的具体内容,通知公告的内容是从后台数据库中读取,数据库中通知内容字段存储的既有文字还有HTML标签,这两者组成了整体。在手机客户端正确合理显示HTML内容成为了本界面的一个关键。

2.2 解决方案

作者首先采用了Java正则表达式过滤法,用过滤HTML标签的正则表达式(“]*)>”)过滤去除HTML标签,只得到了内容中的文字但HTML标签的功能由于被剔除而消失,段落格式、图片、链接等内容无法显示。jsoup选择器选择出img标签来单独显示图片,但是这种方法就破坏了文字和图片的整体性,降低了用户体验不利于人机交互。TextView自带类解析法可以使HTML内容中的文字和图片整体显示,并且解析后文字拥有原有的段落格式和颜色,解析后若文字过小或者图片过大,这很大程度上会影响用户体验,并且TextView是不支持缩放,这就需要一种更人性化的解析方式。

作者采用了WebView直接显示法,优势主要有两个,一是可以轻松更改需要展现的内容(包括样式),二是可以实现部分功能的跨平台。WebView加载HTML代码的方法主要有:1)WebView.loadUrl(String strhtml)方法;2)WebView.loadData(String data, String mimeType, String encoding)方法;3)loadDataWithBaseURL()方法。

作者采用了第三种方法显示HTML内容:loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl),在baseUrl的赋值上,并非要传一个Url参数,因为它只是一个标志位,用来标志当前页面的Key值。historyUrl为value值,在加载时,它会把baseUrl和historyUrl传到List列表中,当作历史记录来使用,当前进和后退时,它会通过baseUrl来寻找historyUrl的路径,通过加载historyUrl路径来加载历史界面。使用这种方法不需要先将HTML内容进行转码,直接可以显示。实例代码:webView.loadDataWithBaseURL( null, massage, “text/html”, “utf-8”, null),massage为作者从数据库中获得HTML内容字段,并非获取字段后直接传入到loadDataWithBaseURL()方法中,需要对HTML标签进行路径补全处理。

HTML标签是由众多功能标签组成,img标签是重要的组成部分,img标签中的图片路径分为绝对路径和相对路径。在Android客户端解析HTML标签时,图片的链接路径必须是相对路径才能在WebView中显示出完整的图片,否则只有图片的边缘。但在网站中的图片很多都是绝对路径这就需要对img标签进行单独的处理将绝对路径转化为相对路径。操作主要分为两步:第一步判断HTML标签中是否含有img标签;第二步带有绝对路径的img标签利用字符串补全替代法,将路径补充完整。字符串的替换会影响html代码的显示速度,所以需要判断HTML标签中是否含有img标签,降低字符串替换对显示效率的影响。在判断是否含有img标签时,首先利用jsoup解析器解析出img标签再进行if判断。示例代码:String massage1 = massage.replaceAll(“(.*?)src=\”(.*?)”,”$1src=\”http://”)。

在本次项目中作者添加了一些人性化的操作,例如双击屏幕实现自适应屏幕功能,添加此功能遵循了人机交互原则,增强了用户体验。功能的实现是Android提供了WebSetting工具类,工具类中专门设置WebView的一些特征、属性,只需要设置WebView的如下这些

属性。

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

2)WebView.getSettings().setBuiltInZoomControls(true);// 设置出现缩放工具

需要注意的是WebView显示HTML内容的速度比较慢尤其是加载网页时,建议对图片进行延迟载入处理,并将耗时加载操作放到子线程中来提高显示效率。

3 结论

在Android手机客户端显示HTML内容有多种方式,每种方式都有各自的优缺点,在项目研发过程中,可根据需求来选择高效的解析方法。

参考文献

[1]明日科技.Android从入门到精通[M].清华大学出版社,2010.

[2]李刚.疯狂Android讲义[M].电子工业出版社,2013.

[3]迈耶.Android4高级编程[M].3版.2013.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值