package com.example.saveimagetosdcard; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; import android.view.Menu; //1 注意权限 //2 仅为了测试,所以把此方法写到了MainActivity中 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.getImageFromNetSaveToSDCard(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void getImageFromNetSaveToSDCard() { try { Bitmap bitmap = null; InputStream inputStream = null; String imagePathString = "http://photocdn.sohu.com/20121109/Img357146253.jpg"; URL imageUrl = new URL(imagePathString); HttpURLConnection httpURLConnection = (HttpURLConnection) imageUrl.openConnection(); httpURLConnection.setConnectTimeout(5000); // httpURLConnection.setRequestMethod("POST");//设置为POST获取的图片大小为0 httpURLConnection.setRequestMethod("GET"); if (httpURLConnection.getResponseCode() == 200) { inputStream = httpURLConnection.getInputStream(); // 利用InputStream生成bitmap bitmap = BitmapFactory.decodeStream(inputStream); } if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // 在SD卡下建立文件夹 String sdCardPath = Environment.getExternalStorageDirectory().toString(); String folderName = "/haha"; String imageFolderPath = sdCardPath + folderName; File imageFolder = new File(imageFolderPath); if (!imageFolder.exists()) { imageFolder.mkdirs(); } // 在SD卡下的文件夹中保存图片 String everyImagedetailPath = imageFolder.toString()+ "/man.jpg"; File everyImageFile = new File(everyImagedetailPath); if (everyImageFile.createNewFile()) {// 创建文件成功 FileOutputStream outputStream = new FileOutputStream(everyImageFile); bitmap.compress(CompressFormat.JPEG, 80, outputStream); outputStream.flush(); outputStream.close(); } else { System.out.println("保存图片失败"); } } } catch (Exception e) { e.printStackTrace(); } } }