使用http协议获取网络图片
2012-02-11 17:23
441 查看
http用于传输WWW方式的数据。http协议采用了请求响应的模型。在android中提供了HttpURLConnection和HttpClient接口开发HTTP程序。下面分别使用这两种方式获取网络图片。
1.HttpURLConnection
代码如下:
最后不要忘记在manifest.xml加入网络访问权限:
运行效果:
2.HttpClient
下面使用HttpClient获取网页内容:
运行效果:
这样就成功加载了网页内容。
1.HttpURLConnection
代码如下:
public class HttpURLConnectionActivity extends Activity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.simple1); imageView=(ImageView) this.findViewById(R.id.imageView1); //传入网络图片地址 try { URL url = new URL("http://news.xinhuanet.com/photo/2012-02/09/122675973_51n.jpg"); HttpURLConnection conn= (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5*1000); conn.connect(); InputStream in=conn.getInputStream(); ByteArrayOutputStream bos=new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int len = 0; while((len=in.read(buffer))!=-1){ bos.write(buffer,0,len); } byte[] dataImage=bos.toByteArray(); bos.close(); in.close(); Bitmap bitmap=BitmapFactory.decodeByteArray(dataImage, 0, dataImage.length); //Drawable drawable=BitmapDrawable. imageView.setImageBitmap(bitmap); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(getApplicationContext(), "图片加载失败", 1).show(); } } }
最后不要忘记在manifest.xml加入网络访问权限:
<uses-permission android:name="android.permission.INTERNET" />由于访问网络图片是比较耗时的操作,所以在正式项目中使用异步加载图片,效果会更好。
运行效果:
2.HttpClient
下面使用HttpClient获取网页内容:
public class HttpClientActivity extends Activity { private ImageView imageview; private TextView text; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.simple2); imageview=(ImageView) this.findViewById(R.id.imageView2); text=(TextView) this.findViewById(R.id.textView2); HttpGet httpGet=new HttpGet("http://cloud.csdn.net/a/20120209/311628.html"); HttpClient httpClient=new DefaultHttpClient(); try { //得到HttpResponse对象 HttpResponse httpResponse=httpClient.execute(httpGet); //HttpResponse的返回结果是不是成功 if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ //得到返回数据的字符串 String dataImageStr=EntityUtils.toString(httpResponse.getEntity()); text.setText(dataImageStr); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
运行效果:
这样就成功加载了网页内容。
相关文章推荐
- 使用http协议获取网络图片
- 使用http协议获取网络图片
- Android开发教程:使用http协议获取网络图片
- 使用http协议获取网络图片
- 使用Http协议获取网络图片,采用servlet输出
- 使用http协议获取网络图片
- 使用Viewpager制作图片阅读器(5)- 增加获取网络图片(附上源码)
- 使用Volley获取网络图片,并作本地缓存
- 【Android学习笔记系列】AsyncTask的使用和介绍(获取网络图片与进度条实例)
- Android中ConvenientBanner的使用--获取网络图片 --(实现效果是自动轮播图片)
- [置顶] 使用ImageLoader加载网络图片时,如何获取加载进度,如何设置进度条
- (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)
- 使用http协议下载网络图片
- 使用httpget方式获取网络上的图片
- Android 多线程:使用Thread和Handler (从网络上获取图片)
- Android 多线程:使用Thread和Handler (从网络上获取图片)
- 手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源
- 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)
- 使用图片预加载,解决断网后无法从后台获取提示网络异常的logo图片的问题
- 使用HttpURLconnection从网络获取图片