您的位置:首页 > 理论基础 > 计算机网络

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

2014-12-03 11:02 435 查看

步骤:

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



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);

}

}



@Override

public void onFailure(int statusCode, Header[] headers,

byte[] responseBody, Throwable error) {

error.printStackTrace();

}

});

break;



default:

break;

}



}



}

3、MainActivity.java

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);

}

}



@Override

public void onFailure(int statusCode, Header[] headers,

byte[] responseBody, Throwable error) {

error.printStackTrace();

}

});

break;



default:

break;

}



}



}

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



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

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

转发请标明原文地址 /article/1344677.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐