转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24022165
今天给大家带来CSDN的完结篇,即加入文章的查看和文章中图片的保存~
今天的目标:
首先是对控件使用的考虑,既然是网络上的文章,可能首先想到的就是webview,这里直接把页面载入到webview中是肯定不行的,首先得把页面上的数据解析,然后可能需要一个html的模版,然后把数据填充到模版,再将模版用于webview的展示。想了想,还是不是很方面,因为不确定文章中的段落、图片的数量和位置。所以最终照着网络上流传的版本使用List实现。
思路:把页面上的数据解析成 标题、摘要、段落(*)、图片(*),自定以一个对象,解析完成后生成一个List,当然顺序一定要和原文的一直。然后针对标题、摘要、段落、图片各做一个List的item的布局,最终显示。
好了,先简单看下csdn文章页的html:
我们在原先的代表上,添加对这样html页面的解析:
首先是封装的对象:
package com.zhy.bean;import java.util.List;public class NewsDto{ private List<News> newses; private String nextPageUrl ; public List<News> getNewses() { return newses; } public void setNewses(List<News> newses) { this.newses = newses; } public String getNextPageUrl() { return nextPageUrl; } public void setNextPageUrl(String nextPageUrl) { this.nextPageUrl = nextPageUrl; } }
package com.zhy.bean;public class News{ public static interface NewsType { public static final int TITLE = 1; public static final int SUMMARY = 2; public static final int CONTENT = 3; public static final int IMG = 4; public static final int BOLD_TITLE = 5; } /** * 标题 */ private String title; /** * 摘要 */ private String summary; /** * 内容 */ private String content; /** * 图片链接 */ private String imageLink; /** * 类型 */ private int type; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; this.type = NewsType.SUMMARY; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getImageLink() { return imageLink; } public void setImageLink(String imageLink) { this.imageLink = imageLink; this.type = NewsType.IMG; } public int getType() { return type; } public void setType