AsyncHttpClient和SmartImageView的使用及案例(新闻客户端)

本文介绍AsyncHttpClient和SmartImageView的使用方法,并通过一个新闻客户端的案例展示其功能。AsyncHttpClient是HttpClient的封装,提供网络访问,而SmartImageView是用于加速网络图片加载的控件。案例中,这两个库被用来从服务器获取XML文件,解析新闻信息,并在ListView中显示。
摘要由CSDN通过智能技术生成

本篇博文呢,我们来介绍一下AsyncHttpClient和SmartImageView这两个开源项目的使用以及通过一个案例来展示它们的功能

1.AsyncHttpClient的使用

AsyncHttpClient是对HttpClient的再次包装。

特点
发送异步HTTP请求
HTTP请求发生在UI线程之外
内部采用了线程池来处理并发送请求

用法:
a. 下载AsyncHttpClient源代码
要使用AsyncHttpClient首先要下载它的源代码

b.将AsyncHttpClient引入自己的工程中
下载AsyncHttpClient的源代码之后,解压复制src文件夹下的源代码,然后将其粘贴到自己的工程目录src下即可,也可以下载jar包,将jar文件粘贴在工程目录的libs文件夹下,然后右击并依此选择Build Path—-Add to Build Path即可。

c.常用类及作用

常用类名称 功能描述
AsyncHttpClient 用来访问网络的类
RequestParams 用于参加参数的类
AsyncHttpResponseHandler 访问网络后回调的接口

如果要使用AsyncHttpClient,首先创建AsyncHttpClient的实例,然后设置参数,接着通过AsyncHttpClient的实例对象访问网络。如果访问成功则会回调AsyncHttpResponseHandler接口中的OnSucess方法,失败则会回调OnFailure方法



2.SmartImageView的使用

开源项目SmartImageView的出现主要是为了加速从网络上加载图片,它继承自ImageView类,支持根据URL地址加载图片,支持异步加载图片,支持图片缓存等。

在使用SmartImageView之前,同样需要下载SmartImageView的源代码,然后将SmartImageView的源代码引入到自己的工程项目中。

添加SmartImageView控件样例代码如下:

<com.loopj.android.image.SmartImageView
    android:layout_weight="1000"
    android:id="@+id/siv"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

使用SmartImageView控件样例代码如下:

public class MainActivity extends Activity {
   
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SmartImageView siv=(SmartImageView)findViewById(R.id.siv);
        siv.setImageUrl("指定地址图片",R.drawable.ic_launcher,R.drawable.ic_launcher);
        }
}

上述代码演示了如何使用SmartImageView来加载一张网络图片。从代码中可以看出,SmartImageView可以当做一个自定义控件来使用。在加载指定图片的时候,只需要调用setImageURL()方法指定图片的路径、加载中现实的图片以及加载失败显示的图片即可。




下面我们通过一个简易的案例–新闻客户端来看一下这两个开源项目的应用。该案例实现了获取服务器的XML文件并将其解析出来捆绑显示到ListView上的功能,具体步骤如下:

1.创建程序
首先创建一个程序,设计用户交互界面,对应的布局文件(activity_main.xml)如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.anew.MainActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:id="@+id/loading"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="invisible" >

            <ProgressBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="正在加载信息..." />
        </LinearLayout>

        <ListView
            android:id="@+id/lv_news"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>

</LinearLayout>

这里写图片描述

这个页面主要包含了提示用户数据正在加载中的ProgressBar,TextView以及用于展示新闻信息的ListView。

2.创建ListView Item的布局
由于用到了ListView控件,因此需要为ListView的item创建一个布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height=&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值