引用开源框架通过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
相关文章推荐
- 赵雅智_引用开源框架通过AsyncHttpClient实现网络图片查看器
- Android引用开源框架通过AsyncHttpClient实现文件上传
- 赵雅智_引用开源框架通过AsyncHttpClient进行文件上传
- 引用开源框架通过AsyncHttpClient处理get/post请求
- 赵雅智_引用开源框架通过AsyncHttpClient处理get/post请求
- 强大的网络通信框架(不实现缓存)--第三方开源--AsyncHttpClient
- android---利用android-async-http开源项目实现网络图片查看器
- Android 通过开源框架实现加载网络图片并下载到SD卡通知系统相册显示,(并实现分享图片功能)
- 引用开源框架通过AsyncHttpClient进行文件上传
- 强大的网络通信框架(不实现缓存)--第三方开源--AsyncHttpClient
- 使用开源框架制造网络图片查看器
- 赵雅智_引用开源框架通过AsyncHttpClient查看网页源代码
- 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)
- 利用android-async-http开源项目实现网络代码查看器
- 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
- 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
- 找呀志_通过开源框架引AsyncHttpClient处理get/post要求
- 异步网络加载开源框架AsyncHttpClient使用
- Android 通过开源框架AsyncHttpClient进行get和post请求
- 有限状态机的C++实现(2)-bayonet开源网络服务器框架