我想从网上下载一些gif格式的图片,现在已经可以得到它的Bitmap对象(bmp),要把它保存到SD卡中(file),发现有下面的方法:
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bmp.compress(Bitmap.CompressFormat.JPEG, 80, bos);但是好像compress()方法只能保存jpg格式或者png格式,因此我想问一下,如何才能保存为gif格式呢?
谢谢!

解决方案 »

  1.   

    先把bitmap对象转换成byte字节或者buff,然后再直接用bos.write写入去
      

  2.   

    其实android中IO处理和java是一样的,你参考一下下面的下载方法吧,判断文件名后缀和保存到SD卡中就没写出来了//path为下载路径,saveName是保存名称可以是任何文件
    public void getImage(String path, String saveName) throws Exception {
    URL url = new URL(path);
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");
    con.setConnectTimeout(1000 * 6);
    if (con.getResponseCode() == 200) {
    InputStream inputStream = con.getInputStream();
    byte[] b = getByte(inputStream);
    File file = new File(saveName);
    FileOutputStream fileOutputStream = new FileOutputStream(file);
    fileOutputStream.write(b);
    fileOutputStream.close(); }
    } private byte[] getByte(InputStream inputStream) throws Exception {
    byte[] b = new byte[1024];
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    int len = -1;
    while ((len = inputStream.read(b)) != -1) {
    byteArrayOutputStream.write(b, 0, len);
    }
    byteArrayOutputStream.close();
    inputStream.close();
    return byteArrayOutputStream.toByteArray();
    }