仿知乎日报App
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的更多相关文章
- 微信小程序开发日记——高仿知乎日报(下)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 微信小程序开发日记——高仿知乎日报(中)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...
- 微信小程序开发日记——高仿知乎日报(上)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 学习笔记-Kuaihu(仿知乎日报)
本文目的:由于第一次学习较为完整的项目,故作记录以系统地整理APP开发知识 先看看整个项目结构: activity, fragment, 不用说了.可以看做MVC中的controller db, 存储 ...
- 使用Vue前端框架实现知乎日报app
这是:主页代码 <template> <view class="content"> <view class="uni-list"& ...
- 【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析
目录 说明 使用Fiddler分析android版API 部分效果图 关于源码 说明 在做博客园UWP版的时候其实就有做知乎日报的打算了,前段时间一直出差,在酒店里用Fiddler简单的分析了一下An ...
- 基于MVVM的知乎日报应用安卓源码
使用data binding , dagger2 , retrofit2和rxjava实现的,基于MVVM的知乎日报APP运行效果: <ignore_js_op> 使用说明: 项目结构 a ...
- 【完全开源】知乎日报UWP版(下篇):商店APP、github源码、功能说明。Windows APP 良心出品。
目录 说明 功能 截图+视频 关于源码和声明 说明 陆陆续续大概花了一个月的时间,APP算是基本完成了.12月份一直在外出差,在出差期间进行了两次功能完善,然后断断续续修补了一些bug,到目前为止,我 ...
- 仿知乎app登录界面(Material Design设计框架拿来就用的TexnInputLayout)
在我脑子里还没有Material Design这种概念,就我个人而言,PC端应用扁平化设计必须成为首选,手当其冲的两款即时通讯旺旺和QQ早就完成UI扁平化的更新,然而客户端扁平化的设计本身就存在天生的 ...
随机推荐
- 07----popo up 弹窗
弹窗: 绑定点击弹窗事件,js代码 弹出框的url设置 from django.forms.models import ModelChoiceField 进入ModelChoiceField 可看到 ...
- learn go error
package main // 参考文档: // https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/05.2.md im ...
- Jenkins构建持续集成
Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变得可能.现在软件开发追求的是效率以及质量,Jenkins使得自动化成为可能! 亮点 采用shell自定义脚本,控制 ...
- NSLayoutConstraint 布局,配合简单的动画效果
demo地址 :链接: http://pan.baidu.com/s/1c00ipDQ 密码: mi4c 1 @interface ViewController () @property (nonat ...
- ASP.NET Core 中的SEO优化(4):自定义视图路径及主题切换
系列回顾 <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET Core 中的SEO优化(2):中间件中渲染Razor视图> < ...
- 解决遇到Linux网络配置,从熟悉网络配置文件入手
如果接触过Linux,网络配置是一个比较棘手的问题.但是Linux是文件为基础来构建的系统,包括我们windows中设备,Linux也视为文件.所以只要我们明白文件的作用.就能对Linux更加的熟悉, ...
- python笔记-12 redis缓存
一.redis引入 1.简要概括redis 1.1 redis默认端口:6379 1.2 redis实现的效果:资源共享 1.3 redis实现的基本原理:不同的进程和一个公共的进程之间建立socke ...
- 阿里云简单的HTTPS配置
1, 在CA证书服务中购买证书,填写信息,之后[域名授权配置]. 域名授权配置有两种,一种是文件配置,一种是DNS配置,这里我选择DNS配置. 记录类型:TXT 主机记录:按照上图填写 记录值:按照上 ...
- python之wheel 包命名规则、abi 兼容和安装
一.windows安装python包,遇见的问题 1.python3以后的版本,安装python包,可以直接使用pip安装,但是安装时偶尔报错 2.安装python源码包,如何确定自己该安装哪个版本, ...
- ballerina 学习一 基本项目安装试用
ballerina介绍 建议参考这篇文章: https://mp.weixin.qq.com/s/DqdlOhquqMaGOJf26lANPw 1. 安装 直接下载对应操作系统的二进制文件即 ...