android 下载图片到sd卡,透过查看“相册”找不到,确定已经下载到sd卡,求指点
android 下载图片到sd卡,通过查看“相册”找不到,确定已经下载到sd卡,求指点
问题1:如上,图片从服务器上下载下来,但是打开手机相册后看不到下载的图片,一定要找到sd卡图片目录,打开图片,这个时候再打开相册就可以看到了,这是为什么?下面是我的代码,求指点哪里写的不对,谢谢。
问题二:通过这个方法有时候下载下来的图片打不开,但是它有大小比如20k,打不开几率为10%
谢谢了
------解决方案--------------------
问题1:如上,图片从服务器上下载下来,但是打开手机相册后看不到下载的图片,一定要找到sd卡图片目录,打开图片,这个时候再打开相册就可以看到了,这是为什么?下面是我的代码,求指点哪里写的不对,谢谢。
//保存图片到sdcard
public void saveImages(String imageViews){
InputStream is = null; //定义一个输入流。
BufferedInputStream bis = null;//定义一个带缓冲的输入流 。
try{
URL url = new URL(imageViews);//创建一个URL对象。
is = url.openStream(); //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
bis = new BufferedInputStream(is);
}catch(Exception e){
System.out.println(e.toString());
}
//创建储存图片的文件
String midr = Environment.getExternalStorageDirectory()+ "/download";
File fird = new File(midr);
if(!fird.exists()){
fird.mkdirs(); //创建新文件夹
}
//获取系统时间
dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String systemTime = dateFormat.format(new java.util.Date());
String path = Environment.getExternalStorageDirectory()+ "/download/" + "wx"+"_"+systemTime+".jpg";
//path =mnt/xuzhong/wx_201408211452.jpg
//写到本地
BufferedOutputStream bos = null; //定义一个带缓冲的输出流。
File file = new File(path);
try{
bos = new BufferedOutputStream(new FileOutputStream(file));;
//file:mnt/sdcard/xunzhong/wx_20140821163351.jpg
byte[] b = new byte[1024]; //创建字节数组。
while(bis.read(b)!=-1){ //输入流中的数据如果还有下一行(!=-1)将继续循环
bos.write(b); //将字节数组写入输出流。
}
}catch(Exception e){
System.out.println("++++++++++++++++++"+e.toString());
}finally{
try{
bos.flush(); //刷新此缓冲的输出流。
bis.close(); //关闭此输入流 。
}catch(Exception e){
System.out.println("++++++++++++++++++"+e.toString());
}
}
}
问题二:通过这个方法有时候下载下来的图片打不开,但是它有大小比如20k,打不开几率为10%
谢谢了
------解决方案--------------------