引用开源框架通过AsyncHttpClient实现网络图片查看器

步骤:

1.添加权限(访问网络权限)

2.创建异步请求对象

3.执行post请求(指定url路径,新建AsyncHttpResponseHandler方法)

a) 如果成功创建工厂对象

b) 工厂对象的decodeByteArray把字节转换成Bitmap对象

c) 设置图片

 

实例项目解析

项目要求:通过editText文本输入框中的网址,点击查看按钮,进行网络图片显示

运行效果如下:

    

 

重点代码:均有详细解析,请认真查看注释

1、在AndroidManifest.xml中添加权限

    <uses-permission android:name="android.permission.INTERNET"/>

 

2、布局文件activity_main.xml

 

  1. package com.example.photowatch;  
  2.   
  3. import org.apache.http.Header;  
  4.   
  5. import android.app.Activity;  
  6. import android.graphics.Bitmap;  
  7. import android.graphics.BitmapFactory;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.widget.EditText;  
  11. import android.widget.ImageView;  
  12.   
  13. import com.loopj.android.http.AsyncHttpClient;  
  14. import com.loopj.android.http.AsyncHttpResponseHandler;  
  15.   
  16. public class MainActivity extends Activity {  
  17.   
  18.     private EditText et_url;  
  19.     private ImageView img_info;  
  20.   
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.         // 获取控件对象  
  26.   
  27.         et_url = (EditText) findViewById(R.id.et_url);  
  28.         img_info = (ImageView) findViewById(R.id.img_info);  
  29.     };  
  30.   
  31.     public void show(View v) {  
  32.   
  33.         int id = v.getId();  
  34.         switch (id) {  
  35.         case R.id.btn_show:  
  36.             //请求地址  
  37.             String url = et_url.getText().toString();  
  38.             //创建网络请求对象  
  39.             AsyncHttpClient client= new AsyncHttpClient();  
  40.              client.get(url, new AsyncHttpResponseHandler() {  
  41.                 @Override  
  42.                 public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {  
  43.                     if (statusCode == 200) {  
  44.                         //创建工厂对象  
  45.                         BitmapFactory bitmapFactory = new BitmapFactory();  
  46.                         //工厂对象的decodeByteArray把字节转换成Bitmap对象  
  47.                         Bitmap bitmap = bitmapFactory.decodeByteArray(responseBody, 0, responseBody.length);  
  48.                         //设置图片  
  49.                         img_info.setImageBitmap(bitmap);  
  50.                     }  
  51.                 }  
  52.   
  53.                 @Override  
  54.                 public void onFailure(int statusCode, Header[] headers,  
  55.                         byte[] responseBody, Throwable error) {  
  56.                     error.printStackTrace();  
  57.                 }  
  58.             });  
  59.             break;  
  60.   
  61.         default:  
  62.             break;  
  63.         }  
  64.   
  65.     }  
  66.   
  67. }  

3、MainActivity.java

  1. package com.example.photowatch;  
  2.   
  3. import org.apache.http.Header;  
  4.   
  5. import android.app.Activity;  
  6. import android.graphics.Bitmap;  
  7. import android.graphics.BitmapFactory;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.widget.EditText;  
  11. import android.widget.ImageView;  
  12.   
  13. import com.loopj.android.http.AsyncHttpClient;  
  14. import com.loopj.android.http.AsyncHttpResponseHandler;  
  15.   
  16. public class MainActivity extends Activity {  
  17.   
  18.     private EditText et_url;  
  19.     private ImageView img_info;  
  20.   
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.         // 获取控件对象  
  26.   
  27.         et_url = (EditText) findViewById(R.id.et_url);  
  28.         img_info = (ImageView) findViewById(R.id.img_info);  
  29.     };  
  30.   
  31.     public void show(View v) {  
  32.   
  33.         int id = v.getId();  
  34.         switch (id) {  
  35.         case R.id.btn_show:  
  36.             //请求地址  
  37.             String url = et_url.getText().toString();  
  38.             //创建网络请求对象  
  39.             AsyncHttpClient client= new AsyncHttpClient();  
  40.              client.get(url, new AsyncHttpResponseHandler() {  
  41.                 @Override  
  42.                 public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {  
  43.                     if (statusCode == 200) {  
  44.                         //创建工厂对象  
  45.                         BitmapFactory bitmapFactory = new BitmapFactory();  
  46.                         //工厂对象的decodeByteArray把字节转换成Bitmap对象  
  47.                         Bitmap bitmap = bitmapFactory.decodeByteArray(responseBody, 0, responseBody.length);  
  48.                         //设置图片  
  49.                         img_info.setImageBitmap(bitmap);  
  50.                     }  
  51.                 }  
  52.   
  53.                 @Override  
  54.                 public void onFailure(int statusCode, Header[] headers,  
  55.                         byte[] responseBody, Throwable error) {  
  56.                     error.printStackTrace();  
  57.                 }  
  58.             });  
  59.             break;  
  60.   
  61.         default:  
  62.             break;  
  63.         }  
  64.   
  65.     }  
  66.   
  67. }  

重点代码就是这些,自己动手查看一下效果吧!~

 

开源框架资源:http://download.csdn.net/detail/zhaoyazhi2129/7400787

源码:http://download.csdn.net/detail/zhaoyazhi2129/7400815

转发请标明原文地址  http://blog.csdn.net/zhaoyazhi2129/article/details/27048527

时间: 2025-01-30 00:29:45

引用开源框架通过AsyncHttpClient实现网络图片查看器的相关文章

Android引用开源框架通过AsyncHttpClient实现文件上传

引用开源框架通过AsyncHttpClient进行文件上传,具体内容如下 一.步骤: 1.添加权限(访问网络权限和读写权限) 2.获取上传文件路径并判断是否为空 3.若不为空,创建异步请求对象 4.创建上传文件路径 5.执行post请求(指定url路径,封装上传参数,新建AsyncHttpResponseHandler方法) 二.查看参考文档 三.实例项目解析 运行效果如下: 在本地文件夹中查看是否获取到图片,如下图显示 重点代码:均有详细解析,请认真查看注释 1.在AndroidManifes

引用开源框架通过AsyncHttpClient进行文件上传

一.步骤: 1.添加权限(访问网络权限和读写权限) 2.获取上传文件路径并判断是否为空 3.若不为空,创建异步请求对象 4.创建上传文件路径 5.执行post请求(指定url路径,封装上传参数,新建AsyncHttpResponseHandler方法)   二.查看参考文档   三.实例项目解析 运行效果如下:        在本地文件夹中查看是否获取到图片,如下图显示 重点代码:均有详细解析,请认真查看注释 1.在AndroidManifest.xml中添加权限     <uses-permi

【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目

备份短信和添加短信 操作系统短信的uri: content://sms/ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.backupsms" android:versionCode="1

Android网络图片查看器

项目源码下载 https://github.com/Wang-Jun-Chao/AndroidProjects 网络图片查看器 确定图片的网址 发送http请求 URL url = URL(address); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(); conn.setReadTimeout(); conn.setRequestMethod(); conn

android 写网络图片查看器,代码看不出错,但就是结果不对,新手求帮助,帮忙挑挑错。

问题描述 android 写网络图片查看器,代码看不出错,但就是结果不对,新手求帮助,帮忙挑挑错. 我反复检查了好几遍,感觉写的都正确.就是运行时没结果. 我打算访问的图片是自己创建的web工程上的图片,访问的地址也把localhost改为了相应的ip地址(ip是通过cmd->ipconfig查询得到) 我也添加了网络访问权限. 个人感觉不是布局导致的问题,因为程序运行后,那个吐司的报错一直都显示.如果是布局有问题,最多看不到图片. 感觉把该注意的问题都注意到了,但是还是运行有问题,希望各位大大

Android编程实现网络图片查看器和网页源码查看器实例_Android

本文实例讲述了Android编程实现网络图片查看器和网页源码查看器.分享给大家供大家参考,具体如下: 网络图片查看器 清单文加入网络访问权限: <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> 界面如下:   示例: public class MainActivity extends Activity { private EditText ima

Android入门之网络图片查看器

效果图: main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" andr

android网络图片查看器简单实现代码

本文实例为大家分享了android网络图片查看器的具体代码,供大家参考,具体内容如下 效果图: 1.输入一个图片url 2.转换成bitmap位图 3.展示到ImageView上 xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t

Android编程实现网络图片查看器和网页源码查看器实例

本文实例讲述了Android编程实现网络图片查看器和网页源码查看器.分享给大家供大家参考,具体如下: 网络图片查看器 清单文加入网络访问权限: <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> 界面如下: 示例: public class MainActivity extends Activity { private EditText image