天天看点

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

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

2.创建异步请求对象

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

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

b) 工厂对象的decodebytearray把字节转换成bitmap对象

c) 设置图片

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

运行效果如下:

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

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

1、在androidmanifest.xml中添加权限

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

2、布局文件activity_main.xml

package com.example.photowatch;  

import org.apache.http.header;  

import android.app.activity;  

import android.graphics.bitmap;  

import android.graphics.bitmapfactory;  

import android.os.bundle;  

import android.view.view;  

import android.widget.edittext;  

import android.widget.imageview;  

import com.loopj.android.http.asynchttpclient;  

import com.loopj.android.http.asynchttpresponsehandler;  

public class mainactivity extends activity {  

    private edittext et_url;  

    private imageview img_info;  

    @override  

    protected void oncreate(bundle savedinstancestate) {  

        super.oncreate(savedinstancestate);  

        setcontentview(r.layout.activity_main);  

        // 获取控件对象  

        et_url = (edittext) findviewbyid(r.id.et_url);  

        img_info = (imageview) findviewbyid(r.id.img_info);  

    };  

    public void show(view v) {  

        int id = v.getid();  

        switch (id) {  

        case r.id.btn_show:  

            //请求地址  

            string url = et_url.gettext().tostring();  

            //创建网络请求对象  

            asynchttpclient client= new asynchttpclient();  

             client.get(url, new asynchttpresponsehandler() {  

                @override  

                public void onsuccess(int statuscode, header[] headers, byte[] responsebody) {  

                    if (statuscode == 200) {  

                        //创建工厂对象  

                        bitmapfactory bitmapfactory = new bitmapfactory();  

                        //工厂对象的decodebytearray把字节转换成bitmap对象  

                        bitmap bitmap = bitmapfactory.decodebytearray(responsebody, 0, responsebody.length);  

                        //设置图片  

                        img_info.setimagebitmap(bitmap);  

                    }  

                }  

                public void onfailure(int statuscode, header[] headers,  

                        byte[] responsebody, throwable error) {  

                    error.printstacktrace();  

            });  

            break;  

        default:  

        }  

    }  

}  

3、mainactivity.java

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

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

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

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

继续阅读