1、6.Error:Execution failed for task ':app:buildInfoDebugLoader'.
> Exception while doing past iteration backup : Source G:\project\***\app\build\intermediates\builds\debug\37215488613481\classes.dex and destination G:\project\***\app\build\intermediates\builds\debug\37215488613481\classes.dex must be different

这种问题不知道怎么出现的,clean一下即可。

2、Imageview加载网络图片,要用Handler。

3、ImageView设置图片的比例问题。http://blog.csdn.net/hhbgk/article/details/8101676

4、取消标题栏,只要设置一下Theme即可。

第一步是爬取相关的文章标题,图片,以及地址。

用的是普通的java写的,还有用了htmlunit的库比较方便,为什么要这样,还得学下css

源网址:http://daily.zhihu.com

出来的效果大概是这样

代码:

import java.io.IOException;
import java.net.MalformedURLException; import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomNode;
import com.gargoylesoftware.htmlunit.html.DomNodeList;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlImage;
import com.gargoylesoftware.htmlunit.html.HtmlPage; public class main { public static void main(String args[]) throws FailingHttpStatusCodeException, MalformedURLException, IOException{ String url = "http://daily.zhihu.com"; WebClient webClient = new WebClient(BrowserVersion.CHROME); //把警告弄掉的
webClient.getOptions().setJavaScriptEnabled(false); webClient.getOptions().setCssEnabled(false); HtmlPage page = webClient.getPage(url); //System.out.println(page.asXml()); //DomNode content = page.querySelector(".main-wrap.content-wrap");
//System.out.println(content.asXml()); //找到所有wrap的类
DomNodeList<DomNode> iList = page.querySelectorAll(".wrap"); for(DomNode i: iList){ HtmlAnchor a = (HtmlAnchor)i.querySelector("a");
HtmlImage img = (HtmlImage)i.querySelector("img"); // 获取 a 标签的属性 href ,就是帖子详情的地址啦!!
String href = a.getAttribute("href");
String src = img.getAttribute("src");
String title = i.asText(); System.out.println(title);
System.out.println(href);
System.out.println(src); }//end for } }

第二步:怎么处理获得的数据?

就是UI的问题,这个暂时没有设计好- -

就是网上的图片获取之后弄成bitmap,然后在handleMessage里面设置到ImageView里面

还有就是涉及网络的任务必须新开一个线程,不能在主线程执行

代码:

public class MainActivity extends AppCompatActivity {

    WebView webView;
ImageView imageView;
Bitmap bitmap; Handler handler; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler(){ @Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.d("TAG","getMessage"); imageView.setImageBitmap(bitmap); }
}; /*
webView = (WebView)findViewById(R.id.webView); webView.loadUrl("http://daily.zhihu.com/story/8746558");
*/ imageView = (ImageView)findViewById(R.id.imageview1); new Thread(new Runnable() {
@Override
public void run() { try {
getImageViewInputStream(); } catch (IOException e) {
e.printStackTrace();
} Message message = new Message();
handler.sendMessage(message); }
}).start(); } public void getImageViewInputStream() throws IOException {
InputStream inputStream = null;
URL url = new URL("http://pic1.zhimg.com/96b31814276e24e991064920567ed9e4.jpg"); //服务器地址
if (url != null) {
//打开连接
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
//httpURLConnection.setConnectTimeout(3000);//设置网络连接超时的时间为3秒
httpURLConnection.setRequestMethod("GET"); //设置请求方法为GET
httpURLConnection.setDoInput(true); //打开输入流
httpURLConnection.connect();
int responseCode = httpURLConnection.getResponseCode(); // 获取服务器响应值
if (responseCode == HttpURLConnection.HTTP_OK) { //正常连接
inputStream = httpURLConnection.getInputStream(); //获取输入流
bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();
Log.d("TAG","getOK");
} } } }

第三步:怎么处理文章?

当时还在纠结一堆html格式的怎么解析,后来想到可以用WebView偷懒。直接把文章的网址放在WebView里面就好了

仿知乎日报App的更多相关文章

  1. 微信小程序开发日记——高仿知乎日报(下)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  2. 微信小程序开发日记——高仿知乎日报(中)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...

  3. 微信小程序开发日记——高仿知乎日报(上)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  4. 学习笔记-Kuaihu(仿知乎日报)

    本文目的:由于第一次学习较为完整的项目,故作记录以系统地整理APP开发知识 先看看整个项目结构: activity, fragment, 不用说了.可以看做MVC中的controller db, 存储 ...

  5. 使用Vue前端框架实现知乎日报app

    这是:主页代码 <template> <view class="content"> <view class="uni-list"& ...

  6. 【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析

    目录 说明 使用Fiddler分析android版API 部分效果图 关于源码 说明 在做博客园UWP版的时候其实就有做知乎日报的打算了,前段时间一直出差,在酒店里用Fiddler简单的分析了一下An ...

  7. 基于MVVM的知乎日报应用安卓源码

    使用data binding , dagger2 , retrofit2和rxjava实现的,基于MVVM的知乎日报APP运行效果: <ignore_js_op> 使用说明: 项目结构 a ...

  8. 【完全开源】知乎日报UWP版(下篇):商店APP、github源码、功能说明。Windows APP 良心出品。

    目录 说明 功能 截图+视频 关于源码和声明 说明 陆陆续续大概花了一个月的时间,APP算是基本完成了.12月份一直在外出差,在出差期间进行了两次功能完善,然后断断续续修补了一些bug,到目前为止,我 ...

  9. 仿知乎app登录界面(Material Design设计框架拿来就用的TexnInputLayout)

    在我脑子里还没有Material Design这种概念,就我个人而言,PC端应用扁平化设计必须成为首选,手当其冲的两款即时通讯旺旺和QQ早就完成UI扁平化的更新,然而客户端扁平化的设计本身就存在天生的 ...

随机推荐

  1. socket创建TCP服务端和客户端

    看情况选择相对应的套接字*面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)*面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM) 在liun ...

  2. 求整数A和B的二进制表示中有多少位是不同?

    如果有题目要求整数A和B二进制表示中多少位是不同的? 那我们要先考虑一个unsigned类型中变量1的个数?我们可以考虑简单的移位运算,向右移位,我们进行判断如果不是1直接丢掉,使用&运算符即 ...

  3. JPA级联(一对一 一对多 多对多)注解【实际项目中摘取的】并非自己实际应用

    下面把项目中的用户类中有个:一对一  一对多  多对多的注解对应关系列取出来用于学习      说明:项目运行正常 问题类:一对多.一对一.多对多 ============一对多 一方的设置 @One ...

  4. 【2018.06.26NOIP模拟】T2号码bachelor 【数位DP】*

    [2018.06.26NOIP模拟]T2号码bachelor 题目描述 Mike 正在在忙碌地发着各种各样的的短信.旁边的同学 Tom 注意到,Mike 发出短信的接收方手机号码似乎都满足着特别的性质 ...

  5. sql中的一些函数(长期更新。。)

    前言 在最近看别人的sql的时候,看到一些函数,比如left(),right()等等,好奇是什么意思,查询之后觉得还是挺有用的,特此记录下来.博客会在遇到新的函数的时候定期更新. 正文 1. left ...

  6. C#飞行棋游戏

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. h5移动端flexible源码适配终端解读以及常用sass函数

    ;(function(win, lib) { var doc = win.document;// win = window,lib = window.lib; var docEl = doc.docu ...

  8. BZOJ1495 [NOI2006]网络收费

    题意 传送门 MY市NS中学,大概是绵阳市南山中学. 分析 参照Maxwei_wzj的题解. 因为成对的贡献比较难做,我们尝试把贡献算到每一个叶子节点上.我们发现按照题目中的收费方式,它等价于对于每棵 ...

  9. BW建模开发入门

    本文档主要指导具体操作步骤,一些技术名称和描述可能在各步骤中不对应,可以忽略 一.模型建立 1.建立信息区和信息对象目录 1)进入BW工作台 2)创建信息区 输入技术名称和描述 3)创建特性和关键值的 ...

  10. 【转】VC 模式对话框和非模式对话框的创建,销毁和区别

    原文网址:http://blog.csdn.net/mycaibo/article/details/6002151 VC 模式对话框和非模式对话框的创建,销毁和区别   在WIN32中,模式对话框的创 ...