一、首先获取图片
//第一种获取图片的方法
1 String filePath = downloadUrl;
2 //以下是取得图片的方法
3 取得的是InputStream,直接从InputStream生成bitmap
4 mBitmap = BitmapFactory.decodeStream(getImageStream(filePath));
5
6 public InputStream getImageStream(String path) throws Exception{
7 URL url = new URL(path);
8 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
9 conn.setConnectTimeout(5 * 1000);
10 conn.setRequestMethod("GET");
11 if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
12 return conn.getInputStream();
13 }
14 return null;
15 }
//第二种获取图片的方法
1 String filePath = downloadUrl;
2 //以下是取得图片的方法
3 取得的是byte数组, 从byte数组生成bitmap
4 byte[] data = getImage(filePath);
5 if(data!=null){
6 mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
7 }else{
8 Toast.makeText(MainActivity.this, "Image error!", Toast.LENGTH_SHORT).show();
9 }
10 public byte[] getImage(String path) throws Exception{
11 URL url = new URL(path);
12 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
13 conn.setConnectTimeout(5 * 1000);
14 conn.setRequestMethod("GET");
15 InputStream inStream = conn.getInputStream();
16 if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
17 return readStream(inStream);
18 }
19 return null;
20 }
21 public static byte[] readStream(InputStream inStream) throws Exception{
22 ByteArrayOutputStream outStream = new ByteArrayOutputStream();
23 byte[] buffer = new byte[1024];
24 int len = 0;
25 while( (len=inStream.read(buffer)) != -1){
26 outStream.write(buffer, 0, len);
27 }
28 outStream.close();
29 inStream.close();
30 return outStream.toByteArray();
31 }
二、保存图片
1 **
2 * 保存bitmap到SD卡
3 * @param bitmap
4 */
5 public void saveBitmapToSDCard(Bitmap bitmap) {
6 FileOutputStream fos = null;
7 try {
8 fos = new FileOutputStream(picPath);//picPath为保存SD卡路径
9 if (fos != null) {
10 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
11 fos.close();
12 }
13 } catch (Exception e) {
14 e.printStackTrace();
15 }
16 }