private void downloadImage(){
filePath= "http://bbs.cndw.com/UploadFile/2012-2/20122161936623104.jpg";
imgName = "yang.jpg";
//使用【方法1】取得的是InputStream,直接从InputStream生成bitmap
try{
Bitmap bitmap = BitmapFactory.decodeStream(getImageStream(filePath));
if(bitmap!=null){
saveFile(bitmap, "yang.jpg"); //调用保存方法
File file = new File("/sdcard/mbookyang/yang.jpg");
if(file.exists()){ //判断文件是否存在
Bitmap bm = BitmapFactory.decodeFile("/sdcard/mbookyang/yang.jpg");//由File获取图片并转为Bitmap
imageView1.setImageBitmap(bm);
}
}
}
catch(Exceptione) {
Toast.makeText(this,"下载图片失败", 1).show();
e.printStackTrace();
}
}
//方法1
public InputStream getImageStream(String path)throws Exception{
URL url = newURL(path);
HttpURLConnection conn =(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5 * 1000); //设定超时
conn.setRequestMethod("GET"); //GET为下载,POST为上传
if(conn.getResponseCode()== HttpURLConnection.HTTP_OK){
returnconn.getInputStream(); //获得数据流
}
return null;
}
//方法2
public byte[] getImage(String path) throwsException{
URL url = newURL(path);
HttpURLConnection conn =(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5 * 1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
if(conn.getResponseCode()== HttpURLConnection.HTTP_OK){
returnreadStream(inStream);
}
return null;
}
public static byte[] readStream(InputStream inStream)throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[]buffer =new byte[1024];
int len =0;
while((len=inStream.read(buffer)) != -1){
outStream.write(buffer, 0, len);
}
outStream.close();
inStream.close();
returnoutStream.toByteArray();
}
//保存Bitmap为图片文件
public void saveFile(Bitmap bitmap, String fileName) throws IOException {
File dirFile = new File("/sdcard/mbookyang");
if(!dirFile.exists()){ //判断路径是否存在,不存在则创建
dirFile.mkdir();
}
File savePath = new File("/sdcard/mbookyang/" + fileName); //保存路径
BufferedOutputStream bos = new BufferedOutputStream(newFileOutputStream(savePath));
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, bos); //质量压缩为80%
bos.flush();
bos.close();
}