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();
}
}
}