Android和服务器通信,从服务器端获取图片

在android开发过程中,与服务器的通信是无处不在的,今天将要讲一个小问题,就是如何从服务器端获取图片:

我们通过查阅资料得知,服务器端以json的形式发给android客户端图片的url地址,例如:https://img1.doubanio.com//mpic//s28023953.jpg  (这是一幅豆瓣书籍图片)

android端获取到该json数据,解析出来这个url地址之后,我们通过编程实现客户端本地读取图片。

		new Thread(new Runnable(){

			@Override
			public void run() {
				DownloadBitmap(url1,iv_show);
			}
			
		}).start();


public void DownloadBitmap(String bmurl,final ImageView iv)    //bmurl是解析出来的utl, iv是显示图片的imageView控件
	{
		Bitmap bm=null;
		InputStream is =null;
		BufferedInputStream bis=null;
		try{
			URL  url=new URL(bmurl);
			URLConnection connection=url.openConnection();
			bis=new BufferedInputStream(connection.getInputStream());
			bm= BitmapFactory.decodeStream(bis);
			final Bitmap bm1 = bm;
			runOnUiThread(new Runnable() {
				
				@Override
				public void run() {
					iv.setImageBitmap(bm1);
				}
			});
		}catch (Exception e){
			e.printStackTrace();
		}
		finally {
			try {
				if(bis!=null)
					bis.close();
				if (is!=null)
					is.close();
			}catch (Exception e){
				e.printStackTrace();
			}
		}
		
	}

需要强调的几点:

1、利用URLConnection做的时候,直接url.openConnection()即可

2、包装成为一个缓冲流让BitmapFactory  decode一下下

3、注意:注意:android主线程无法进行耗时操作,所以必须是子线程访问网络,主线程更改UI,所以这里采用了runOnUiThread()方法,就是在主线程中更新UI。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值