利用开源框架Volley来下载文本和图片。

Android Volley是Android平台上很好用的第三方开源网络通信框架。使用简单,功能强大。

下载连接地址:http://download.csdn.net/detail/zhangphil/9053413

使用方法:下载Volley.jar后,直接放到Eclipse工程的libs目录下,刷新,然后就可以调用Android Volley了。

代码如下:

 1 package com.lixu.load_txt_image;
 2
 3 import com.android.volley.RequestQueue;
 4 import com.android.volley.Response.ErrorListener;
 5 import com.android.volley.Response.Listener;
 6 import com.android.volley.VolleyError;
 7 import com.android.volley.toolbox.ImageRequest;
 8 import com.android.volley.toolbox.StringRequest;
 9 import com.android.volley.toolbox.Volley;
10
11 import android.app.Activity;
12 import android.graphics.Bitmap;
13 import android.graphics.Bitmap.Config;
14 import android.os.Bundle;
15 import android.text.method.ScrollingMovementMethod;
16 import android.widget.ImageView;
17 import android.widget.TextView;
18 import android.widget.Toast;
19
20 public class MainActivity extends Activity {
21     private TextView tv;
22     private ImageView iv;
23
24     @Override
25
26     protected void onCreate(Bundle savedInstanceState) {
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.activity_main);
29
30         tv = (TextView) findViewById(R.id.tv);
31         // 设置TextView的滚动条
32         tv.setMovementMethod(ScrollingMovementMethod.getInstance());
33
34         iv = (ImageView) findViewById(R.id.iv);
35         // 文本和图片的网络地址
36         String url1 = "http://www.baidu.com";
37
38         String url2 = "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1183223528,3058066243&fm=116&gp=0.jpg";
39
40         loadtxt(url1);
41
42         loadimage(url2);
43
44     }
45
46     private void loadtxt(String url1) {
47         // 从Volley中获取RequestQueue 对象
48         RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
49
50         // 创建StringRequest
51         StringRequest sr = new StringRequest(url1, new Listener<String>() {
52             // 获取成功后得到String类型的文本
53             @Override
54             public void onResponse(String response) {
55                 tv.setText(response);
56             }
57         }, new ErrorListener() {
58             // 获取失败后进入
59             @Override
60             public void onErrorResponse(VolleyError error) {
61                 Toast.makeText(getApplicationContext(), "错误!!", 0).show();
62             }
63         });
64         // 将StringRequest添加到RequestQueue中
65         queue.add(sr);
66     }
67
68     private void loadimage(String url2) {
69         RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
70
71         ImageRequest ir = new ImageRequest(url2, new Listener<Bitmap>() {
72             // 获取成功后得到Bitmap类型的图片。 0, 0, 设置图片大小为实际大小,ARGB_8888,设置图片格式为高清大图
73             @Override
74             public void onResponse(Bitmap response) {
75                 iv.setImageBitmap(response);
76             }
77         }, 0, 0, Config.ARGB_8888, new ErrorListener() {
78             // 获取失败后进入
79             @Override
80             public void onErrorResponse(VolleyError error) {
81                 Toast.makeText(getApplicationContext(), "错误!!", 0).show();
82             }
83         });
84         // 将StringRequest添加到RequestQueue中
85         queue.add(ir);
86     }
87
88 }

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>

运行效果图:

时间: 2024-11-05 16:33:44

利用开源框架Volley来下载文本和图片。的相关文章

安卓系统下的多线程断点下载实现2利用开源框架XUtils

使用开源框架可以大大降低开发的难度,减少开发的周期,并且bug也少的多,软件运行起来更稳定. xUtils简介 xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响- xUitls 最低兼容android 2.2 (api level 8) 下载地址:https://github.com/wyouflf/xUtils 下面是一个demo: public class Ma

IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架

每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换取编程速度.擅长利用轮子的程序员已经遥遥领先,不擅长利用轮子的程序员总是嫌前人发明的轮子不够圆,自己造个方轮子上路后才发现落后了. 作者:玖哥来源:51CTO|2017-10-19 16:06 移动端 收藏 分享 [51CTO.com原创稿件]每个Android 程序员都不是Android应用开发之

Cocopod上更新上传自己的开源框架供别人下载

为了更方便的集成第三方框架有了cocopods 的, 当我们有了相对比较好的框架的时候如何更新到cocopods 供他人参考呢? 下面我一步一步带大家开源自己的框架. 第一步 把自己的框架更新到github 上,为了提交地址给他人下载.这里就不详细介绍如何把项目更新到github上了 第二步 这个时候我们的项目已经挂在github上了我们需要给本地的项目新建一个Podspec描述文件 [plain] view plain copy // 进入到项目目录下 cd xxx/xxx/xxx // 创建

【Android进阶】(2)使用开源框架Volley

1. 框架特点 (1). 通信更快,更简单 (2). Get.Post网络请求及网络图像的高效率异步处理请求 (3). 排序 (4). 网络请求的缓存 (5). 多级别取消请求 (6). 和Activity生命周期的联动 缺点:不适合上传和下载 优点:高效的Get/Post方式的数据请求交互,网络图片加载和缓存,是谷歌官方推出的框架,性能很稳定和强劲. 2. 网络数据请求 (1). 使用Get方式请求数据 创建Application类: <span style="white-space:p

Android开源框架——Volley

Volley 是 Google 在 2013 I/O 大会上推出的 Android 异步网络请求框架和图片加载框架.特别适合数据量小,通信频繁的网络操作.Volley 主要是通过两种 Diapatch Thread 不断从 RequestQueue 中取出请求,根据是否已缓存调用 Cache 或 Network 这两类数据获取接口之一,从内存缓存或是服务器取得请求的数据,然后交由 ResponseDelivery 去做结果分发及回调处理. 原文链接:http://blog.csdn.net/zi

Android 网络通信开源框架 Volley JAR包的生成(一)

#:-/code/android/frameworks/volley$ mm -B 运行结果如下: PRODUCT_COPY_FILES frameworks/base/data/sounds/letv_effects/Effect_Tick.ogg:system/media/audio/ui/Effect_Tick.ogg ignored. PRODUCT_COPY_FILES frameworks/base/data/sounds/letv_effects/camera_click.ogg:

android网络开源框架volley(五)——volley的一些细节

最近又把volley拿出来整理了下.之前没有遇到过的一些小问题又来了,在此记录下: 1.HttpUrlConnection DELETE 方式无法添加body的问题:java.net.ProtocolException: DELETE does not support writing 这个可以算是一个系统级的bug,为什么这么说,请看这里,这个问题在java8中才得以解决.没办法直接过去,咱就绕过去.查看HttpUrlConnection,我们发现他是一个抽象类,因此可以试试能不能通过它的其他实

[Android] 开源框架 Volley 自定义 Request

今天在看Volley demo (https://github.com/smanikandan14/Volley-demo), 发现自定义GsonRequest那块代码不全, 在这里贴一个全的. public class GsonRequest<T> extends Request<T> { private Gson mGson; private Class mJavaClass; private Response.Listener<T> mListener; publ

Android之基于开源框架的多线程下载

下面是一个完整的案例,实现的功能是多线程下载服务端的资源数据,感觉不错,推荐给大家! http://bbs.itcast.cn/thread-78561-1-1.html