码迷,mamicode.com
首页 > 其他好文 > 详细

获取网络图片(Bitmap)至内存或者SD卡

时间:2014-08-03 23:17:16      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:android   http   java   os   io   cti   ar   new   

	/**
	 * 获取网络图片
	 * 注意权限:
	 * <uses-permission android:name="android.permission.INTERNET"/>
	 */
	private Bitmap getBitmapFromNetWork(String imageUrl){
		URL url=null;
		Bitmap bitmap=null;
		InputStream inputStream=null;
		HttpURLConnection httpURLConnection=null;
		ByteArrayOutputStream byteArrayOutputStream=null;
		try {
			url=new URL(imageUrl);
			httpURLConnection=(HttpURLConnection) url.openConnection();
			httpURLConnection.setConnectTimeout(5*1000);
			httpURLConnection.setReadTimeout(10*1000);
			httpURLConnection.setDoInput(true);
			httpURLConnection.setDoOutput(true);
			if (httpURLConnection.getResponseCode()==HttpStatus.SC_OK) {
				inputStream=httpURLConnection.getInputStream();
				byteArrayOutputStream=new ByteArrayOutputStream();
				int len=0;
				byte [] buffer=new byte[1024];
				while((len=inputStream.read(buffer))!=-1){
					byteArrayOutputStream.write(buffer, 0, len);
					byteArrayOutputStream.flush();
				}
				byte [] imageData=byteArrayOutputStream.toByteArray();
				bitmap=BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
			} else {
				System.out.println("图片请求失败");
			}
		} catch (Exception e) {
			    System.out.println("e="+e.toString());
		}finally{
			try {
				if (byteArrayOutputStream!=null) {
					byteArrayOutputStream.close();
				}
				if (inputStream!=null) {
					inputStream.close();
				}
				if (httpURLConnection!=null) {
					httpURLConnection.disconnect();
				}
			} catch (Exception e) {
				 System.out.println("e="+e.toString());
			}
		}
		
		return bitmap;
	}
	
	
	/**
	 * 获取网络图片且保存至SDCard
	 * 注意权限:
	 * <uses-permission android:name="android.permission.INTERNET"/>
	 * <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
	 */
	private void getBitmapFromNetWorkAndSaveToSDCard(String imageUrl,String filePath){
		URL url=null;
		File imageFile=null;
		HttpURLConnection httpURLConnection=null;
		FileOutputStream fileOutputStream=null;
		BufferedOutputStream bufferedOutputStream=null;
		InputStream inputStream=null;
		BufferedInputStream bufferedInputStream=null;
		try {
			url=new URL(imageUrl);
			httpURLConnection=(HttpURLConnection) url.openConnection();
			httpURLConnection.setConnectTimeout(5*1000);
			httpURLConnection.setReadTimeout(10*1000);
			httpURLConnection.setDoInput(true);
			httpURLConnection.setDoOutput(true);
			if (httpURLConnection.getResponseCode()==HttpStatus.SC_OK) {
				imageFile=new File(filePath);
				if (!imageFile.getParentFile().exists()) {
					imageFile.getParentFile().mkdirs();
				}
				if (!imageFile.exists()) {
					imageFile.createNewFile();
				}
				fileOutputStream=new FileOutputStream(imageFile);
				bufferedOutputStream=new BufferedOutputStream(fileOutputStream);
				inputStream=httpURLConnection.getInputStream();
				bufferedInputStream=new BufferedInputStream(inputStream);
				int len=0;
				byte [] buffer=new byte[1024];
				while((len=bufferedInputStream.read(buffer))!=-1){
					bufferedOutputStream.write(buffer, 0, len);
					bufferedOutputStream.flush();
				}
			} else {
				System.out.println("图片请求失败");
			}
		} catch (Exception e) {
			    System.out.println("e="+e.toString());
		}finally{
			try {
				if (fileOutputStream!=null) {
					fileOutputStream.close();
				}
				if (bufferedOutputStream!=null) {
					bufferedOutputStream.close();
				}
				if (inputStream!=null) {
					inputStream.close();
				}
				if (bufferedInputStream!=null) {
					bufferedInputStream.close();
				}
				if (httpURLConnection!=null) {
					httpURLConnection.disconnect();
				}
			} catch (Exception e) {
				 System.out.println("e="+e.toString());
			}
		}
		
	}

获取网络图片(Bitmap)至内存或者SD卡,布布扣,bubuko.com

获取网络图片(Bitmap)至内存或者SD卡

标签:android   http   java   os   io   cti   ar   new   

原文地址:http://blog.csdn.net/lfdfhl/article/details/38362515

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!