码迷,mamicode.com
首页 > Web开发 > 详细

Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。

时间:2015-11-23 18:47:02      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是:https://github.com/loopj/android-async-http
AsyncHttpClient和开源框架 Volley和Glide不同的是,不像Volley和Glide内部已经实现好了缓存策略,AsyncHttpClient自身没有实现缓存策略。

代码如下:

 1 package com.lixu.asynchttpclient;
 2 
 3 import org.apache.http.Header;
 4 import com.loopj.android.http.AsyncHttpClient;
 5 import com.loopj.android.http.AsyncHttpResponseHandler;
 6 import android.app.Activity;
 7 import android.graphics.Bitmap;
 8 import android.graphics.BitmapFactory;
 9 import android.os.Bundle;
10 import android.widget.ImageView;
11 import android.widget.TextView;
12 import android.widget.Toast;
13 
14 public class MainActivity extends Activity {
15     private TextView tv;
16     private ImageView iv;
17 
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22 
23         tv = (TextView) findViewById(R.id.tv);
24 
25         iv = (ImageView) findViewById(R.id.iv);
26         // 文本和图片的网络地址
27         String url1 = "http://www.baidu.com";
28 
29         String url2 = "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1183223528,3058066243&fm=116&gp=0.jpg";
30 
31         loadtxt(url1);
32 
33         loadimage(url2);
34 
35     }
36 
37     private void loadtxt(String url1) {
38         // 创建AsyncHttpClient对象
39         AsyncHttpClient ahc = new AsyncHttpClient();
40         ahc.get(url1, new AsyncHttpResponseHandler() {
41 
42             @Override
43             public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
44                 Toast.makeText(getApplicationContext(), "错误!!", 0).show();
45             }
46 
47             @Override
48             public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
49                 // 将获取到的byte[]数组转换成String字符串
50                 tv.setText(new String(arg2));
51             }
52         });
53     }
54 
55     private void loadimage(String url2) {
56 
57         AsyncHttpClient ahc = new AsyncHttpClient();
58         ahc.get(url2, new AsyncHttpResponseHandler() {
59 
60             @Override
61             public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
62 
63                 Toast.makeText(getApplicationContext(), "错误!!", 0).show();
64             }
65 
66             @Override
67             public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
68                 // 创建bitmap图片工厂
69                 BitmapFactory bf = new BitmapFactory();
70                 // 用图片工厂将字节数组转换成bitmap图片
71                 Bitmap bitmap = bf.decodeByteArray(arg2, 0, arg2.length);
72 
73                 iv.setImageBitmap(bitmap);
74 
75             }
76 
77         });
78 
79     }
80 }

xml文件:

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:id="@+id/LinearLayout1"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical" >
 7 
 8     <ScrollView
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent"
11         android:layout_weight="1" >
12 
13         <TextView
14             android:id="@+id/tv"
15             android:layout_width="match_parent"
16             android:layout_height="match_parent" />
17     </ScrollView>
18 
19     <ImageView
20         android:id="@+id/iv"
21         android:layout_width="match_parent"
22         android:layout_height="match_parent"
23         android:layout_weight="1" />
24 
25 </LinearLayout>

运行效果:

技术分享

Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。

标签:

原文地址:http://www.cnblogs.com/labixiaoxin/p/4989064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!