android开发笔记之网络编程—简易新闻客户端

这篇博客介绍了如何使用Android的网络编程知识,结合XML PULL解析和ListView万能适配器,创建一个简易新闻客户端。文章详细讲解了SmartImageView的使用,并提供了数据获取、XML解析和列表显示的步骤。

今天我们来对前面讲过的知识综合运用一下,包括xml的PULL解析,listView的万能适配器等知识。。。。

那先来看一个组件—->智能图片加载器(smart-image-view),它可以很方便的加载一张网络图片。

SmartImageView的设计初衷是来取代Android自带的ImgageView组件,另外它还提供了一些附加功能,如:

支持通过URL来加载图片;

支持从电话簿中加载图片;

异步加载图片;

图片被缓存在内存,以便下次快速加载显示;

SmartImageView类可以被很容易扩展成对其它资源的调用;

而且使用起来非常简单,使用步骤:

①将智能图片加载器的jar包或者源码下载下来。

jar包下载地址:android-smart-image-view-1.0.0.jar

②在xml布局文件中添加一个控件

<com.loopj.android.image.SmartImageView android:id="@+id/my_image" />

③获取引用

SmartImageView myImage = (SmartImageView)this.findViewById(R.id.my_image);

④获取网络图片

myImage.setImageUrl("http://www.awesomeimages.com/myawesomeimage.jpg");

注:

获取网络图片,这个过程本身就是异步。不必再进行处理,也不必担心线程阻塞

网络获取到的图片都进行了缓存的处理。会在程序的cache目录下建/web_image_cache/,图片存在这里

再次使用的时候,如果缓存图片已经存在,则不再从网络获取图片

先看.setImageUrl都有什么方法

1、最普通的一个,直接设置图片地址
// Helpers to set image by URL
public void setImageUrl(String url) {
setImage(new WebImage(url));
}

2、有一个接口,完成下载的时候调用
public void setImageUrl(String url, SmartImageTask.OnCompleteListener completeListener) {
setImage(new WebImage(url), completeListener);
}

3、从字面意思可以看出,是一个备用的资源。如果从网络获取图片失败,则使用备用资源
public void setImageUrl(String url, final Integer fallbackResource) {
setImage(new WebImage(url), fallbackResource);
}

4、类似上面
public void setImageUrl(String url, final Integer fallbackResource, SmartImageTask.OnCompleteListener completeListener) {
setImage(new WebImage(url), fallbackResource, completeListener);
}

5、多了一个loadingResource,就是正在下载的时候展示的图片
public void setImageUrl(String url, final Integer fallbackResource, final Integer loadingResource) {
setImage(new WebImage(url), fallbackResource, loadingResource);
}

6、类似上面
public void setImageUrl(String url, final Integer fallbackResource, final Integer loadingResource, SmartImageTask.OnCompleteListener completeListener) {
setImage(new WebImage(url), fallbackResource, loadingResource, completeListener);
}

接下来我们可以来制作我们的简易新闻客户端了。

效果:

这里写图片描述

我们可以看到这是一个很简单的新闻客户端,没错,所以叫简易的新闻,主要是为了综合运用一下前面所讲的东西。

下面开始分析:

①首先这个客户端有两个Activity,一个是新闻的列表,用一个ListView来装,另外一个是详情界面,只是将点击的新闻传递下去,没有做太多。

那么第一步就应该把数据获取过来,现在只是测试一下,所以只是将新闻数据放在本地的服务器上。这里采用了HttpURLConnection的方式去想访问服务器。

URL url = new URL(path);
                    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setConnectTimeout(3000);
                    conn.setReadTimeout(3000);
                    conn.connect();
                    if (conn.getResponseCode() == 200) {
                         InputStream is = con
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值