使用httpget方式获取网络上的图片
来源:互联网 发布:mac设置iphone铃声2017 编辑:程序博客网 时间:2024/05/01 08:52
在使用http的get方法获取网络资源的时候,需要如下步骤:
1;因为httpClient(是一个公共接口 )所以首先要实现这个的接口,使用DefaultHttpClient()
HttpClient client = newDefaultHttpClient();
2:创建一个httpGet对象传入目标网络地址,
httpGet get= new httpGet (url);
3:然后调用HttpClient 的Execute ()方法执行后会返回一个HttpResponse。服务器中的数据都保护在其中,(但此数据不可直接使用需经过处理)
HttpResponse response= client.execute(get);
4:调用 HttpResponse类中的getEntity方法获取消息实体,然后进行处理
例如:如果是字符型的使用如下方法:
HttpEnity enity = responce.getEntity ();
String info = EntityUtils.tostring (entity,”utf-8”);
如果是图片的话
HttpEnity enity = responce.getEntity ();
byte[] data = EntityUtils .toByteArray (entiy);
Bitmap bitmap = BitmapFactory.decodeByteArray (data, 0 , data.length);
代码如下:
public class MainActivity extends Activity {
private Button button = null;
private ImageView image = null;
String imagpath = "http://10.0.2.2:8080/ServiceForPicture/aa.jpg";
HttpClient client = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
image = (ImageView) findViewById(R.id.imageView);
client = new DefaultHttpClient();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new MyTask().execute(imagpath);
}
});
}
class MyTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
image.setImageBitmap(result);
}
@Override
protected Bitmap doInBackground(String... params) {
Bitmap bitmap = null;
String url = params[0];
HttpGet get = new HttpGet(url);
try {
HttpResponse httpResponse = client.execute(get);
HttpEntity entity = httpResponse.getEntity();
byte[] data = EntityUtils.toByteArray(entity);
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);// 将图片转换成bitmap类型
} catch (ClientProtocolException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return bitmap;
}
}
}
对于布局文件中添加一个Button, 和一个imageview即可。(这里就不在贴出)
然后在清单文件中声明网络权限后,然后即可在模拟器上运行。
- 使用httpget方式获取网络上的图片
- Android从网络上获取图片的两种方式
- Android——使用HttpClient的HttpGet和Post方式进行网络通信
- 从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式
- 网络上获取图片
- 获取网络图片的几种方式
- 关于Httpget获取网页上的静态数据
- android获取网络上的图片
- Android 获取网络上的图片
- Android 如何获取网络上的图片
- 获取网络上的一张图片.
- ViewPager获取网络上的图片
- android 使用httpget访问并获取http资源(httpget的使用)
- Android之从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式
- 使用apache的HttpGet\HttpPost获取返回内容编码问题
- Java使用HttpClient的HttpGet获取网页内容
- Fragment 与 Viewpager 联合使用在网络上获取图片
- 从网络上获取图片
- 过滤字符串中不属于指定集合的字符
- 数字证书原理(1)
- 各种BUG管理工具BUG的状态。
- iOS block使用总结
- spring 数据库
- 使用httpget方式获取网络上的图片
- VB文档读写和数据库读写的相关总结
- 修改jboss启动端口
- libsvm处理数据集
- css样式重置
- 使用VS最新版本编写cpp程序调用C语言中函数可能报错的原因
- cocoapods 使用 二、实战代码篇章
- Unity3D游戏开发初探—2.初步了解3D模型基础
- jQuery 类的增删用法